私はのtry/catchエラー処理のためのスニペットを作成したい:スウィフト:繰り返しのtry catchコード
static func tryCatch(block: (Void) -> Void) -> Any? {
var result: Any?
do {
result = try block()
}
catch let error as NSError {
print(error) //TODO: write error to log
}
return result
}
が、私は私のスニペットを呼び出すときに、私は、コンパイラからエラーを取得する: コールを投げることができるが、それはあります「してみてください」とエラーが
player = Common.tryCatch {
AVAudioPlayer(contentsOf: selectedSoundURL!)
} as? AVAudioPlayer
が処理されないと私はエラーをログに記録するために同じコードを記述する必要はありませんようにのtry/catchコードを再利用する方法はありますマークされていませんか?
あなたはすべてのあなたのtry {} 1で行う{}キャッチ{}を置くことができ、それはあなただけで罰金 – Abdoelrhman
を働くだろう'try?'を見てください。これはかなり完全にこのための必要性を取り除きます – Alexander
また、 'Common'のようなクラスを書くのは避けてください。これは 'Java'や' C# 'ではありません。すべてのメソッドを任意の名前を持つ静的なクラスに入れることに限定されていません。 – Alexander