問題タブ [throws]

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 投票する
4 に答える
31137 参照

java - 例外をスローしてキャッチするか、instanceof を使用しますか?

変数に例外があります (スローされません)。

最良の選択肢は何ですか?

また

0 投票する
2 に答える
849 参照

java - スローを使用すると、呼び出し元のメソッドが例外を処理するよう求められない

ここでは、例外の処理を要求していない他の場所からこのメソッドを呼び出すときに、メソッド シグネチャでスローを使用しました。

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

javascript - QUnit 例外テストについて

QUnit テストを書いているときに、「スロー」の動作に驚きました。次のコード ( http://jsfiddle.net/DuYAc/75/ ) について、誰か私の質問に答えてください。

失敗するのは 2 番目のテストだけですが、これはこのテストを作成する際の私の自然な選択でした...

質問:

1) テストした関数を囲むためにインライン関数を使用する必要があるのはなぜですか?

2) 最後のテストが失敗しないのはなぜですか? 'func' は例外をスローしません。

説明を読んでいただければ幸いです。

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

java - 良いパターン?... method() は X をスローします

いくつかの背景、そしていくつかの質問。

インターフェイス(またはクラス)が、そのメソッドがスローする可能性のある(チェックされた)例外のタイプでジェネリックである可能性があることを最近発見しました。例えば:

ポイントは、後でこれをインスタンス化し、たとえばメソッドIOExceptionを呼び出したrun場合、コンパイラーは、それをキャッチするかIOException、スローされたものとしてマークする必要があることを認識していることです。さらに良いことに、Xが だった場合は、RuntimeExceptionそれを処理する必要はまったくありません。

上記のインターフェイスを使用した不自然な例を次に示しますが、これは基本的にコールバックであり、非常に一般的なはずです。

特定のチェック済み例外で独自の特定のメソッドを実行するために、一般的なユーティリティ メソッドrunTwice(おそらく外部ライブラリで定義されている) を呼び出しています。どの特定のチェック済み例外がスローされる可能性があるかについての情報は失われません。

別の方法は、メソッドとメソッドのthrows Exception両方で単純に使用することでした。これにより、インターフェースの実装が制限されることはありませんが、チェック例外の利点が失われます。または、チェックされた例外の利点が失われ、実装が強制的にラップされる可能性もありました。Runnable.runrunTwiceRunnablethrows

見たことがなかったのでthrows X、何か見落としているのかもしれません。さらに、コールバックの例が反論されることなく、チェックされた例外に対する引数として使用されているのを何度か見てきました。(この質問は、チェック済み例外の長所/短所には関心がありません。)

throws X一般的には良い考えですか?長所と短所は何ですか?使用している、または使用していないが、使用する必要がある例をいくつか挙げていただけますthrows Xか?

基本的に、もう少し洞察が欲しいです。次の例についてコメントしてください。

  • OutputStreamスローIOException(おそらくByteArrayOutputStream拡張可能GenericOutputStream<RuntimeException>)

  • Callable/Future.get

  • コモンズプールborrowObject/makeObject

(編集後、振り返ってみると、これらを別の方法で設計することができたかどうか、またはすべきであったかどうかは尋ねていません。むしろ、throws Xよりも優れているでしょうthrows Exception。)

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

java - IllegalArgumentException をスローできない

プログラムで 3 つのテスト スコアを受け取り、それらの平均を出力する必要がありますが、スコアが -1 未満または 100 より大きい場合は、IllegalArgumentException をスローする必要があります。平均を出力することはできますが、-1 または 101 をテストすると、例外はスローされません。私は何を間違っていますか?

私は例外の学習に非常に慣れていないので、助けていただければ幸いです。

これが私のコードです:

0 投票する
2 に答える
179 参照

java - 例外は正しく機能しますが、その必要がある方法ではありません

  1. メソッドprocessExceptions() は、メソッドを呼び出してBEAN.methodThrowExceptions例外を処理する必要があります。

1.1。例外FileSystemExceptionが発生した場合は、メソッドを呼び出してログに記録し、BEAN.log前方にスローします

1.2. 例外CharConversionExceptionまたはその他IOExceptionが発生した場合は、メソッドを呼び出してログに記録するだけですBEAN.log

  1. 2.1 で転送する例外のクラス/タイプを追加します。メソッドのprocessExceptions()署名に。

  2. メソッド内の残りの例外を処理し、main()ログに記録します。使用するtry..catch

さまざまな解決策を試しました。動作しますが、本来の動作ではありません。throwsin メソッドの正しい配置は何ですか。それとも、まったく使用すべきではないのでしょうか? そして置いておかないと使えないthrow。助けてください、私は本当にあなたの時間を感謝します.