Esimerkki

public static class SomeException extends Exception{
public SomeException(String str, int value ){
super( str );
this .value = value;
}
public int getValue() {
return value;
}
private int value;
}

public static void createProblem() throws SomeException {
throw new SomeException( "Problem", 10 ); //$NON-NLS-1$
}

public static void main( String[] args ) {
try {
createProblem();
} catch ( Exception e ){
if ( e instanceof SomeException ) {
System.out.println( ((SomeException)e).getValue() );
} else {
System.out.println( e.getLocalizedMessage() );
e.printStackTrace();
}
}
}

Ratkaisu
Poista poikkeuksista instanceof-tarkistukset ja lisää erilliset catch-lauseet try/catch-lohkoon.

public static class SomeException extends Exception{
public SomeException(String str, int value ){
super( str );
this .value = value;
}
public int getValue() {
return value;
}
private int value;
}

public static void createProblem() throws SomeException {
throw new SomeException( "Problem", 10 ); //$NON-NLS-1$
}

public static void main( String[] args ) {
try {
createProblem();
} catch ( SomeException e ){
System.out.println( ((SomeException)e).getValue() );
}
}