Overview 概要
You use Swift's throw
statement and do
-catch
statement to throw and catch errors from Cocoa APIs. Swift imports Cocoa methods with error parameters as throwing methods, as described in About Imported Cocoa Error Parameters.
あなたは、Swiftの持つthrow
文とdo
-catch
文を使って、Cocoa APIからのエラーをスローおよびキャッチします。Swiftは、エラーパラメータを持つCocoaメソッドをスローメソッドとしてインポートします、インポートされるCocoaエラーパラメータについてで記述されるように。
Catch Errors エラーをキャッチする
In Swift, calling a method that throws requires explicit error handling. Because Cocoa methods with errors parameters are imported as throwing methods, you handle them using Swift's do
-catch
statement.
スウィフトでは、スローするメソッドを呼び出すことは明確にエラー処理することを必要とします。エラーパラメータを持つCocoaメソッドはスローメソッドとしてインポートされることから、あなたはそれらをSwiftのdo
-catch
文で処理できます。
Here’s an example of how you handle an error when calling a method in Objective-C: ここに、メソッドをObejctive-Cにおいて呼び出す時に、あなたがエラーを処理する方法の例があります:
Here's how you handle the same error in Swift: ここに、あなたが同じエラーをSwiftで処理する方法があります:
You can also use the do
-catch
statement to match on specific Cocoa error codes to differentiate possible failure conditions:
あなたはまた、do
-catch
文を使って、特定のCocoaエラーコードそれらに関して照合して、可能な失敗状況を区別できます。
Throw Errors エラーをスローする
You throw Cocoa errors by initializing a Cocoa error type and passing in the relevant error domain and code: あなたは、Cocoaエラーのスローを、あるCocoaエラー型を初期化して、関連エラー領域およびコードを渡すことによって行います:
If Objective-C code calls a Swift method that throws an error, the error is automatically propagated to the error pointer argument of the bridged Objective-C method. Objective-Cコードがエラーをスローするスウィフトメソッドを呼ぶならば、そのエラーはブリッジされたObjective-Cメソッドのエラーポインタ引数に自動的に伝達されます。
Throw and Catch Errors from Custom Error Domains あつらえのエラー領域からエラーをスローおよびキャッチする
You use custom error domains in Cocoa to group related categories of errors. The example below uses the NS
macro to group error constants:
あなたは、あつらえのエラー領域をCocoaにおいて使用して、関連するエラーのカテゴリをグループにまとめます。下の例は、NS
マクロを使ってエラー定数をグループにまとめます:
This example shows how to throw errors using that custom error type in Swift: この例は、そのあつらえのエラー型をSwiftで使って、エラーをスローする方法を示します:
This example shows how to catch errors from a particular error domain and bring attention to unhandled errors from other error domains: この例は、特定のエラー領域からのエラーをキャッチする、そして他のエラー領域からの処理できないエラーへの注意をもたらす方法を示します:
Handle Exceptions in Objective-C Only Objective-Cにだけしかない例外を処理する
In Objective-C, exceptions are distinct from errors. Objective-C exception handling uses the @try
, @catch
, and @throw
syntax to indicate unrecoverable programmer errors. This is distinct from the Cocoa pattern—described above—that uses a trailing NSError
parameter to indicate recoverable errors that you plan for during development.
Objective-Cにおいて、例外はエラーとは別個のものです。Objective-C例外処理は、@try
、@catch
、そして@throw
構文を使って回復不可能なプログラマエラーを指し示します。これは、— 上で記述される — Cocoaパターンとは別個のものです、それは後に続くNSError
パラメータを使って、あなたが開発の間に対策を立てる解決可能なエラーを指し示します、
In Swift, you can recover from errors passed using Cocoa’s error pattern, as described above in Catch Errors. However, there’s no safe way to recover from Objective-C exceptions in Swift. To handle Objective-C exceptions, write Objective-C code that catches exceptions before they reach any Swift code. Swiftでは、あなたはCocoaのエラーパターンを使って渡されるエラーから復旧できます、上のエラーをキャッチするで記述されるように。しかしながら、スウィフトにはObjective-C例外から回復する安全な方法はありません。Objective-C例外を取り扱うには、それら例外をそれらが何らかのスウィフトコードに届く前に捕まえるObjective-Cコードを書いてください。