私は2クラスのプロジェクトを持っています。 1つのObjectクラスと1つのGUIクラス。 エラーが発生した場合、自分で宣言された例外をスローしたいと思います。 私は二つの方法があります:Java再スロー例外
public class getValueClass {
private List<Value> liste;
public List<Value> getValues() {
try {
liste = this.getVal();
} catch (ValueException ex) {
System.out.println("EXCEPTION!! " + ex.getMessage());
ex.printStackTrace();
}
return liste;
}
public List<Value> getVal() throws ValueException
{
liste = null;
try {
// initialize list
// do some stuff
//test exception
if(1 == 1)
{
throw new Exception();
}
} catch (Exception ex) {
throw new ValueException("QWE " + ex);
}
return liste;
}
}
今、例外がスローされ、私は私のGetValuesメソッドで例外をキャッチし、メッセージ/スタック
を印刷しかし、私は私のGUIクラスおよびIでメソッドでgetValues呼び出しますそこにExceptionをキャッチして、私のダイアログにいくつかの情報を表示したい!
GUI:
public void myMethod()
{
try
{
l = cs.getValues();
}
catch(Exception ex)
{
System.out.println("TEST " + ex.getMessage());
}
}
しかし、私はすでにでgetValues()メソッドでそれをキャッチするので、私はそこに得ることはありません。
getValues()メソッドのメソッド宣言でスローを追加することなく、このようにすることはできますか? (インターフェイスからこのメソッドを取得しても変更されません)
メソッドシグネチャで宣言されていないと、 'RuntimeException'から継承する例外をスローすることができます。それは、私は悪い練習を宣告されていない例外と考えていると述べた – Siguza
@シグザシェ!私はその意見で一人暮らしだと思った: – Jeeter
http://stackoverflow.com/questions/27578/when-to-choose-checked-and-unchecked-exceptions – jaco0646