私は5つのメソッドを持っています。 1、2、3、4、5メソッドmethod1からメソッド2を、メソッド2からメソッド3を呼び出しています。 Method5で例外が発生し、try-catchブロックで処理しているとします。Method1でこれをどのように知ることができますか?外部メソッドが内部メソッドで例外が発生したことを知る方法
答えて
method1とmethod5の両方がアクセスできる変数/フラグを設定する必要があります。同じクラスのフィールドのようなものはうまくいくはずです。
private String exceptionHappened = "";
private void method1() {
method(2);
// Here I can check value of exceptionHappened
}
//... methods 2-4
private void method5() {
try {
// ...
} catch (Exception e) {
this.exceptionHappened = "In method 5";
}
}
ありがとう、これは私が今使っているものです。 – user1281029
例外の伝播を調べることができます。この他のquestionはそれをかなりよく説明しています。本質的には、例外がtry-catchにない場合、例外は呼び出しスタックの先頭にあるか、キャッチされるまで呼び出されます。
こんにちはしかし、例外の伝播は何ですか?それはJava5/6にあるのですか? – user1281029
私はそれを使っている限り、Javaになっています。 [documentation](http://docs.oracle.com/javase/tutorial/essential/exceptions/)を参照してください。 [1.4.2](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Exception.html)には、私が見つけた最も初期のドキュメントがあります。 – Igor
キャッチされない場合、例外はメインメソッドに到達するまでコール階層内で伝播します。メソッドがコール階層内に例外があるかどうかを知りたい場合は、try-catch
ブロックで例外フローの制御を取得する必要があります。
ユーザー定義の例外を作成し、そのクラスにメソッド名を格納するプロパティを設定します。今urのケースでは、method5の 、catchブロックで、メソッド名を "methodname"プロパティに設定して作成したユーザー定義の例外をスローします。 fir method1(またはこれまでのルートメソッド)までその例外をスローし、次にmethodnameプロパティの値に基づいて、例外がスローされるメソッドを確認できます。
フィードバックいただきありがとうございます。 – user1281029
- 1. EFインクルードクエリでエラーが発生しましたが、内部例外はnullです
- 2. アプリケーション起動メソッドでjava.lang.runtimeexception例外が発生しました
- 3. Main()メソッドでSystem.Drawing例外が発生しました - C#
- 4. CPythonモジュールのinitメソッドで例外を発生させる方法
- 5. F#の例外と内部例外プロパティ
- 6. 外部メソッドからuibuttonメソッドにアクセスするのがintrestedですが、多くのエラーが発生します
- 7. S3でHive外部テーブルを作成すると、 "org.apache.hadoop.fs.s3a.S3AFileSystem not found"例外が発生します。例外
- 8. WCFサービスに外部ライブラリを追加すると例外が発生する
- 9. エンティティフレームワーク、コレクションから削除すると外部キー例外が発生する
- 10. JasperReports API:JasperCompileManager.compileReport(String)メソッドを呼び出すとMalformedByteSequenceException例外が発生しました
- 11. メソッドの内部または外部のOOPセキュリティ/検証?
- 12. コンテナの外部からMySQLの内部エラーが発生しました
- 13. セッター内で例外が発生する
- 14. pandas#read_csvを作成する方法一部の列が欠落したときに例外が発生する
- 15. 内部例外のない未知の例外がスローされますか?
- 16. 指定されたパスはfile.copyメソッドで例外が発生しました
- 17. 未知の例外が発生したスレッドが終了する
- 18. Entity FrameworkのAjax Jqueryメソッドで内部サーバーエラーが発生する
- 19. クラスと外部メソッド呼び出し
- 20. Django ORM:外部キーとの内部結合を試みましたが、FieldErrorが発生しました
- 21. doInBackgroundメソッドでタブバーを追加すると、アンドロイドで例外が発生する
- 22. ハイブ:単純な外部テーブルクエリの作成で解析例外が発生する
- 23. 例外は、内部タグここ
- 24. 内部例外:java.sql.SQLException:内部エラー:1
- 25. 外部メソッドでループを中断する
- 26. 例外が発生したときに完全修飾メソッド名を取得する方法
- 27. 配列を内部メソッドから外部メソッドに参照する方法はありますか?
- 28. Vim:Columnvise内部と外部のインクリメント?外のことで
- 29. ファイナライザメソッド(〜メソッド)で例外が発生した場合.NETで何が起こったのですか
- 30. C#メソッドとプロパティ:例外が発生する可能性があります
は例外ですか?そうであれば、5つのメソッドで宣言しますか?彼らがいなければ、5つの方法すべての署名を変更することが許されていますか?方法1で処理したい場合、方法5でそれをキャッチするいくつかの理由はありますか? ...それは主な質問に私を導く:誰がそれを扱うだろうか? 5つの方法のどれかがエラー状態を修正できる方法はありますか?あなたはそれを記録し、中止するはずですか?ユーザーに状況を解決するための有益なメッセージを表示してください... – jambriz