Skip to content

Commit d9bfc3d

Browse files
committed
error-handling - apply review comments (rust-lang-ja#95)
1 parent 0b58656 commit d9bfc3d

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

1.6/ja/book/error-handling.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,7 +1515,7 @@ trait Error: Debug + Display {
15151515
<!-- following things: -->
15161516
このトレイトは極めて一般的です。
15171517
なぜなら、エラーを表す *全て* の型で実装されることを目的としているからです。
1518-
この後すぐ見るように、このことが合成可能なコードを書くのに間違いなく役立ちます
1518+
この後すぐ見るように、このことは合成可能なコードを書くのに間違いなく役立ちます
15191519
それ以外にも、このトレイトでは最低でも以下のようなことができます:
15201520

15211521
<!-- * Obtain a `Debug` representation of the error. -->
@@ -1651,8 +1651,8 @@ trait From<T> {
16511651
<!-- [set of implementations provided by the standard -->
16521652
<!-- library](../std/convert/trait.From.html). -->
16531653
嬉しいくらい簡単でしょ?
1654-
`From` は、ある特定の型 `T` から違う型へ変換するための汎用的な方法を提供するので大変便利です
1655-
(この場合の「違う型」とは実装の対象、つまり `Self` です)。
1654+
`From` は、ある特定の `T` という型 *から* 、別の型へ変換するための汎用的な方法を提供するので大変便利です
1655+
(この場合の「別の型」とは実装の主体、つまり `Self` です)。
16561656
`From` を支えているのは [標準ライブラリで提供される一連の実装です](../std/convert/trait.From.html)
16571657

16581658
<!-- Here are a few simple examples demonstrating how `From` works: -->
@@ -1668,7 +1668,7 @@ let cow: ::std::borrow::Cow<str> = From::from("foo");
16681668
<!-- It turns out, there is one critical impl: -->
16691669
たしかに `From` が文字列を変換するのに便利なことはわかりました。
16701670
でもエラーについてはどうでしょうか?
1671-
結論から言うと、これが最も重要な実装です
1671+
結論から言うと、これが重要な実装です
16721672

16731673
```rust,ignore
16741674
impl<'a, E: Error + 'a> From<E> for Box<Error + 'a>
@@ -1713,7 +1713,7 @@ let err2: Box<Error> = From::from(parse_err);
17131713
<!-- its argument and its return type. -->
17141714
ここに気づくべき、本当に重要なパターンがあります。
17151715
`err1``err2` の両方ともが *同じ型* になっているのです。
1716-
なぜなら、それらが存在量型、つまり、トレイトオブジェクトだからです。
1716+
なぜなら、それらが存在量化型、つまり、トレイトオブジェクトだからです。
17171717
特にそれらの背後の型は、コンパイラーの知識から *消去されます* ので、 `err1``err2` が本当に同じに見えるのです。
17181718
さらに私たちは同じ関数呼び出し `From::from` を使って `err1``err2` をコンストラクトしました。
17191719
これは `From::from` が引数とリターン型の両方でオーバーロードされているからです。
@@ -1789,7 +1789,7 @@ fn file_double<P: AsRef<Path>>(file_path: P) -> Result<i32, String> {
17891789
<!-- section, `From` has an impl that lets it convert any error type into a -->
17901790
<!-- `Box<Error>`: -->
17911791
以前 `map_err` の呼び出しを取り除くことができると約束しました。
1792-
もちろんです。ここでしなければいけないのは `From` と共に動く型を一つ選ぶことです
1792+
もちろんです。ここでしなければいけないのは `From` と共に動く型を一つ選ぶだけでよいのです
17931793
前の節で見たように `From` の実装の一つは、どんなエラー型でも `Box<Error>` に変換できます:
17941794

17951795
```rust
@@ -1855,7 +1855,7 @@ fn file_double<P: AsRef<Path>>(file_path: P) -> Result<i32, Box<Error>> {
18551855
<!-- automatic type conversion for us by calling `From::from` on the error value. -->
18561856
<!-- In particular, we converted errors to `Box<Error>`, which works, but the type -->
18571857
<!-- is opaque to callers. -->
1858-
最後の説では `try!` マクロの本当の定義を確認し、それが `From::from` をエラーの値に対して呼ぶことで、自動的な型変換をする様子を見ました。
1858+
最後の節では `try!` マクロの本当の定義を確認し、それが `From::from` をエラーの値に対して呼ぶことで、自動的な型変換をする様子を見ました。
18591859
特にそこでは、エラーを `Box<Error>` に変換しました。
18601860
これはたしかに動きますが、呼び出し元にとって、型がオペークになってしまいました。
18611861

@@ -1924,7 +1924,7 @@ impl From<num::ParseIntError> for CliError {
19241924
<!-- All these impls are doing is teaching `From` how to create a `CliError` from -->
19251925
<!-- other error types. In our case, construction is as simple as invoking the -->
19261926
<!-- corresponding value constructor. Indeed, it is *typically* this easy. -->
1927-
これらの実装がしていることは、`From` に対して、どうやって他のエラー型を元に `CliError` を作るのかを教えてあげることです
1927+
これらの実装がしていることは、`From` に対して、どうやって他のエラー型を元に `CliError` を作るのか、教えてあげているだけです
19281928
このケースでは、単に対応する値コンストラクタを呼ぶことで構築しています。
19291929
本当に *普通は* これくらい簡単にできてしまいます。
19301930

0 commit comments

Comments
 (0)