『ゼロから学ぶSwift』学習ノート(Day 54)——間違いを投げ出す
1603 ワード
オリジナルの文章、転載を歓迎します.転載は明記してください:関東昇のブログ
tryの後ろに置くことができる呼び出し関数やメソッドには、エラーを投げ出す可能性があります.これらの関数やメソッドが宣言したパラメータの後ろにthrowsキーワードを付けて、この関数やメソッドがエラーを投げ出すことができることを示します.宣言放出エラーメソッドのサンプルコードは次のとおりです.
上記のコードremove(:)メソッドは値を返さず、throwsキーワードはパラメータの後ろに配置されます.findAll()には、パラメータと戻り値タイプの間に戻り値throwsキーワードが配置されます.
関数またはメソッドにエラーを投げ出す関数またはメソッドは、関数またはメソッドにエラーが発生し、投げ出されたため、投げ出されたエラーを宣言することができます.これにより、関数またはメソッドは投げ出されたエラーを宣言してこそ、実際の意味があります.エラーの発生と放出方法:関数またはメソッドにおいてthrow文により、人為的にエラーを放出する.関数やメソッドで呼び出された他のエラー関数やメソッドを投げ出すことができますが、キャプチャ処理がないとエラーが伝播します.サンプルコードは次のとおりです.
guard文はfalseの場合にエラーを投げ出す条件で、このような早期判断を処理するのが最も得意です.findAll()文自体にエラーが発生する可能性がありますが、catch文を使用してキャプチャおよび処理されていません.これにより、このエラーが関数またはメソッドの呼び出し元に伝播し、呼び出し元が処理をキャプチャしない場合、最後にプログラムが実行中にエラーが発生します.
tryの後ろに置くことができる呼び出し関数やメソッドには、エラーを投げ出す可能性があります.これらの関数やメソッドが宣言したパラメータの後ろにthrowsキーワードを付けて、この関数やメソッドがエラーを投げ出すことができることを示します.宣言放出エラーメソッドのサンプルコードは次のとおりです.
// Note
func remove(model: Note) throws {
...
}
//
func findAll() throws -> [Note] {
...
}
上記のコードremove(:)メソッドは値を返さず、throwsキーワードはパラメータの後ろに配置されます.findAll()には、パラメータと戻り値タイプの間に戻り値throwsキーワードが配置されます.
関数またはメソッドにエラーを投げ出す関数またはメソッドは、関数またはメソッドにエラーが発生し、投げ出されたため、投げ出されたエラーを宣言することができます.これにより、関数またはメソッドは投げ出されたエラーを宣言してこそ、実際の意味があります.エラーの発生と放出方法:関数またはメソッドにおいてthrow文により、人為的にエラーを放出する.関数やメソッドで呼び出された他のエラー関数やメソッドを投げ出すことができますが、キャプチャ処理がないとエラーが伝播します.サンプルコードは次のとおりです.
// Note
func remove(model: Note) throws {
guard let date = model.date else { // guard
// " "
throw DAOError.PrimaryKeyNull
}
//
for (index, note) in listData.enumerate() where note.date == date {
listData.removeAtIndex(index)
}
}
//
func findAll() throws -> [Note] {
guard listData.count > 0 else { // guard
// " " 。
throw DAOError.NoData
}
return listData
}
func printNotes() throws { //
let datas = try findAll()
for note in datas {
print("date : \(note.date!) - content: \(note.content!)")
}
}
try printNotes()
guard文はfalseの場合にエラーを投げ出す条件で、このような早期判断を処理するのが最も得意です.findAll()文自体にエラーが発生する可能性がありますが、catch文を使用してキャプチャおよび処理されていません.これにより、このエラーが関数またはメソッドの呼び出し元に伝播し、呼び出し元が処理をキャプチャしない場合、最後にプログラムが実行中にエラーが発生します.