Javaの7のリリースでは、例外処理メカニズム上のOracleはまた、いくつかの良い変更を行いました。これらは、主にcatchブロックを改善するために、そして句が過剰スローします。のは、彼らがどのように変化するかを見てみましょう。
1.改善されたJavaのcatchブロック7
この機能では、あなたが今することができ、単一のcatchブロックで複数の例外を捕捉し。Javaの7の前に、あなただけの各catchブロックでの唯一の例外をキャプチャすることができます。
(「|」)文字を、希望例外リストを指定パイプを使用します。
複数のJavaプログラムは、1つの例外catchブロックで捕捉することができます。
try
{
//Do some processing which throws NullPointerException;
throw new NullPointerException();
}
//You can catch multiple exception added after 'pipe' character
catch( NullPointerException npe | IndexOutOfBoundsException iobe )
{
throw ex;
}
場合
catch
ブロックは、例外の複数のタイプを処理し、その後**catch
パラメータは暗黙的であるfinal
**。この例では、catch
パラメータがex
ありfinal
、あなたがすることはできませんので、catch
ブロック内の任意の値を割り当てます。
throws節に2.のJava 7の冗長性
この機能は、throws節を使用すると、メソッドの宣言に使用保存されます。以下の例を参照してください:
public class MultipleExceptionsInCatchBlock {
public static void main(String[] args)
{
sampleMethod();
}
public static void sampleMethod()
//throws Throwable //No need to do this
{
try
{
//Do some processing which throws NullPointerException; I am sending directly
throw new NullPointerException();
}
//You can catch multiple exception added after 'pipe' character
catch(NullPointerException | IndexOutOfBoundsException ex)
{
throw ex;
}
//Now method sampleMethod() do not need to have 'throws' clause
catch(Throwable ex)
{
throw ex;
}
}
}