問題タブ [do-catch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
264 参照

swift - do...catch のステートメントを手動で catch に移動します。

配列のカウントが 0 より大きいかどうかをテストし、そうでない場合は現在のビューを閉じます。

今、私は次のようにしています:

do..catchカウントが 0 より大きくない場合、手動でをに送信できるかどうか疑問に思っています。そうすれば、 2 回書き込むcatch必要はありません。self.dismiss(animated: true, completion: nil)これが可能かどうか誰にもわかりますか?

0 投票する
1 に答える
737 参照

swift - do ステートメント

これがモデルからオブジェクトを削除するための関数だとしましょう:

質問:

エラーがスローされた場合、実行はcatch句に転送されます。それはすばらしい。しかし、ステートメント (コードの残りの部分、通知をキャンセルし、tableView をリロードする) はどうなりますか? それらのステートメントはまだ実行可能ですか、それとも単純に無視されますか?

0 投票する
1 に答える
225 参照

swift - キャッチ パターンの変更のコールバック シグネチャ

JSONDecoderAlamofire を使用して、サーバーからの json 応答をデコードしようとしています。で応答をデコードすると、guard問題なく動作します。このアプローチの副作用は、デコードが実際に失敗したときに何が問題なのかがわからないことです。

したがって、代わりに a を使用したいのですdo { } catch { }が、 AlamofireresponseJSONコールバック内でどのように使用する必要があるのか​​ わかりません。

これは私が現在持っているものです:

ただし、このコードで得られるのは、.responseJSON { (response) -> Void in行のコンパイラ エラーです。

タイプ '(_) -> Void' のスロー関数から非スロー関数タイプ '(DataResponse) -> Void' への無効な変換。

ガード コードは正常に動作し、a に変更tryするtry?かアンラップを強制すると、コンパイルされます。実際のエラーを catch で処理することはできません。

catchパターンを含まないようにブロックを変更すると、コードはコンパイルされます。

これは、私が私に与えていたもの以上に何もguard与えません。操作で発生したエラーをキャプチャしたいのですdecode。間違ったパターンを使用していますか? DecodingError.dataCorruptedパターンを使用するとコールバック シグネチャが変わるように見えるのはなぜですか?