問題タブ [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.
java - Javaの「スロー」ステートメントの目的は何ですか?
私はJavaを学んでいますが、最終的にコールスタックの先頭にあるほとんどのメソッドには、「例外をスローする」という宣言があるだけのようです。私が見逃しているこのステートメントの利点は何ですか?
もう1つの例。コードをいくつか書いた後、他の Java ライブラリのクラスを使用して、自分のクラスの 1 つを少しリファクタリングすることにしました。その結果、このクラスのメソッドの半分が宣言でさらに 5 つの例外を獲得しただけでなく、他のすべてのコードの約半分も同様でした。約。例外を間違って使用しているだけでしょうか?
重要な編集
私の質問は、そのステートメントが何をするかについてではありませんでした。ドキュメントから明らかです。なぜ言語設計者がこのステートメントを必要とすることにしたのか、私は実際に疑問に思っていました。
java - FileNotFoundExceptionをスローするメソッドを呼び出す
これは簡単なことだと確信していますが、簡単な答えは見つかりませんでした。でメソッドを呼び出すにはどうすればよいthrows FileNotFoundException
ですか?
これが私の方法です:
java - クラスで複数のメソッドから例外をキャッチする
Javaには、同じカスタム例外をスローするいくつかのメソッドを持つクラスがあります(カスタム例外は「Exception」クラスを拡張します)。
ユーザーにこれらの例外を処理させる代わりに、それらをキャッチしてクラス内で処理できるようにしたいと思います。各メソッドの例外は、まったく同じ方法でキャッチされます。すべてのメソッドにまったく同じtry/catchメソッドブロックを配置する必要はありません。メソッドの本体の外で、クラスの内部でこれらの例外をキャッチする方法はありますか?
お手数をおかけしますが、よろしくお願いいたします。
詳細情報の追加:
これらのメソッドは、特定の時点まで呼び出される場合があります。変数「isImmutable」をtrueに設定するメソッドが呼び出された後、これらのメソッドはオブジェクトに関する情報を変更できなくなります。したがって、「isImmutable」がtrueに設定された後にこれらのメソッドのいずれかが呼び出された場合、「ImmutableException」と呼ばれる例外をスローする必要があります。/この特定の実装/では、これらのメソッドが呼び出されるコード内のすべてのポイントに移動して、まったく同じ方法で処理するのではなく、自分でこれらを処理できるようにしたいと思います。
java - Javaでは、MouseListenerを実装し、IOExceptionをスローするクラスをどのように持つのですか?
throws IOException は、ファイルからの入力用です。
java - Java: 別のスレッドに例外をスローする
次のようなJavaコードがあります。
問題は、Run() メソッドにブロックしている write() があることです。そのため、接続が送信されているかどうかをチェックする新しいスレッドを追加しました。送信していない場合は、ブロックしている write() を例外メカニズム (チェッカー スレッドから他のスレッドの run() メソッドに例外をスローする)。出来ますか?
編集[解決済み]:
唯一の方法は、出力ストリームを残酷に閉じ、書き込まれたビットの量を調べて、接続が送信されているかどうかを確認することです。
java - キャッチブロックのヌルポインタ
例外をキャッチするためにtrycatchブロックを使用しています。コンソールは、null値をスローしていることを示しています。しかし、それはキャッチブロックには行きません。
これはどのように処理できますか。メソッドレベルも使用できますthrows NullPointerException
か?
java - エラーメッセージ「報告されていない例外 java.io.IOException; キャッチするか、スローするように宣言する必要があります」
エラー:
filecontent.java:15: 報告されていない例外 java.io.IOException; キャッチするか、投げることを宣言する必要があります
ショーファイル(); ^ filecontent.java:78: 報告されていない例外 java.io.IOException; キャッチするか、投げることを宣言する必要があります
ショーファイル(); ^
すでに java.io.IOException をスローしましたが、それでもこれらのエラーが表示されます。
私のコード:
java - 継承、メソッドシグネチャ、メソッドオーバーライド、およびスロー句
私Parent
のクラスは:
私はextend
このクラスでサブクラスを作成しますChild
:
クラスのgetXメソッドをオーバーライドしているときに、メソッド定義から句を削除したことに注意してください。これで、コンパイラーによる異常な動作が予想されます。Child
throws
try-catch
予想どおり、ブロックで囲まずにコンパイルすることはありません。
ブロックで囲まずにコンパイルしtry-catch
ます。
ただし、以下のコード行にはtry-catchブロックが必要です。
これは予測可能であるため、つまり、実行時のポリモーフィズム中に親クラス参照を使用して子メソッドを呼び出すことができるので、Javaの設計者が、特定の親クラスメソッドをオーバーライドするときにメソッド定義にthrows句を含めることを必須にしないのはなぜですか?つまり、親クラスのメソッドの定義にthrows句が含まれている場合、それをオーバーライドするときに、オーバーライドするメソッドにもthrows句を含める必要があります。
java - スローされた例外をファイルに書き込む
try catch ブロックを使用せずに、スローされた例外をファイルに書き込むことは可能ですか?
例えば
または、次のことを行う必要がありますか?