2012-01-09 9 views
0

Javaアプリケーション(いくつかのクラスとパッケージを持つ)内のすべての例外を場所で取得するにはどうすればよいですか? 例:あなたはこのようなものがあり、クラスは他のアプリケーションクラスメインクラスでJavaアプリケーションですべての例外を取得

+0

あなたを取得できませんでした。クラスパスをスキャンして、利用可能な例外は何ですか? –

+0

詳細をご記入ください。あなたはすべての例外をキャッチしたいのですか、あるいはどの例外クラスが利用可能か(あなたのパッケージだけか、Javaライブラリを含むか)を見てみてください。ランタイムおよび/またはチェック例外について話していますか? – AxelTheGerman

+0

投げられたのは例外だけではありません。あなたはエラーをスローすることもできますし、Throwableまたはサブクラス(エラーも例外もありません) –

答えて

0

上のすべての例外を取得すること作成します、あなたの他のクラスで

try { } catch (Exception ex) { } 

をごべきスロー例外、以下のように:あなたが他のクラス例外をスローした場合

public void example() throws Exception { } 

、あなただけメインクラスにそれらに対処することができます。

+1

あなたは質問を理解しましたか? user986566は何を望みますか? –

+1

私はuser986566がただ1つのクラスのすべてのアプリケーション例外を処理したいと思います。 –

0

クラスExceptionとそのサブクラスは、合理的なアプリケーションが捕捉したいと考えられる条件を示すThrowableの形式です。

すべてのメソッドがメインの呼び出しメソッドに対して例外をスローすると、すべての例外をキャッチできます。

例外クラスの階層は、java.lang packagejava.lang.Throwableと宣言された例外クラスファミリ全体の基本クラスであるThrowableクラスから始まります。

1

あなたは、単に2つの機能

void handleException(Exception e); 
void handleThrowable(Throwable t); 

とすべてのtry{}catch(Exception e){}単にinstanceof

を使用し、例外がスローされているものを見つけるにはExceptionHandler.handleException(e);

を使用する時にクラスExceptionHandlerを持っていないのはなぜにたとえば。

if(e instanceof NullPointerException) 
{ 
//whatver 
} 
3

他が既に示されている、1つのオプションtry-catchブロック

public static void main(String[] args){ 
    try{ 
    //regular main code 
    } catch (Throwable e){ 
    //do exception handling 
    } 
} 

であなたの主なメソッドを置くことであるとして別の可能性は、あなたがThread#setDefaultUncaughtExceptionHandlerで使用しているThread(S)上のデフォルトたuncaughtExceptionHandlerを設定しています方法。

両方のソリューションだけで、彼らはあなたのアプリケーションを使用でき

0

内の他の場所に巻き込まれていない場合は、「一つの場所にあるすべての例外を処理」することを可能にすることに注意してください:

試し{

// block of code ... 

}キャッチ(例外e){

// Do something with e 

}

関連する問題