私はJavaプログラムに取り組んでおり、例外をスローするすべてのメソッドを指摘するツールがEclipseにあるかどうか疑問に思っていました。私はそれらすべてを手に入れたことを確認したいだけです。
助けてくれてありがとう、
ダン
Eclipse が通知するように、チェック済み例外をキャッチする必要があります。一方、チェックされていない例外(別名RuntimeException ) は「発生しないはず」です。ほとんどの場合、プログラミングの問題です。したがって、Java はそれらをキャッチする必要がなく、AFAIK Eclipse は潜在的な問題について通知するヒントを表示しません (おそらく可視性が向上します)。
Unchecked Exceptions — The Controversyを読むことができます。これは、Oracle がunchecked exceptionsについての心境を述べている記事です。
自分で何かを構築したい場合はDirect Known Subclasses
、RuntimeExceptionを調べてください。キャッチされることなくスローできる例外を特定するのに役立ちます。
まずはキーワード検索。「throw」キーワードは、エラー状態を検出しているコードや例外を処理できないコードに含まれますが、「throws」は、特定の例外を渡すことを宣言するメソッドになります。
実行時例外は「throws」句で宣言する必要がなく、ライブラリ呼び出しによってスローされる可能性があるため、Eclipse は例外をスローするすべてのメソッドを見つけることができない場合があります。この場合、「throw」も見つかりません。
チェック例外 (extends )をキャッチするのを忘れるとException
、コードはコンパイルされません。チェックされていない例外 (extends )をキャッチするのを忘れた場合はRuntimeException
、通常、それがより良い方法です。読む
プログラムがメイン メソッド (初期実行コンテキスト) で例外をキャッチすると、何らかの例外がスローされたが処理されなかった場合に通知されます。
public static void main(String[] args) {
try {
// .... anything you want to do
} catch(Exception e) {
e.printStackTrace(); // useful to visualize the stack trace and ping point others places to catch exceptions
} catch(Throwable t) {
// if you want to check for errors also, but generally there isn't much to do in this case
}
}
補足として、Java はチェック済み (Exception) および未チェックの RuntimeException) 例外の概念を実装しているため、チェック済みを処理することが必須であり、これにより、正しいプログラムが試行/キャッチ/最終的に実行する必要があることが例外に通知されます。しかし、unchecked は、通常はバグを示す状況を通知し、グッド プラクティスと防御的なプログラミングでは避けるべきであるため、対処する必要はありません。