3

Javaでチェックされていない例外をチェックされた例外に変換できますか? はいの場合、チェックされていない例外をチェックされた例外に変換/ラップする方法を提案してください。

4

2 に答える 2

2

はい。チェックされていない例外をキャッチし、チェックされた例外をスローできます。

例 :

  public void setID (String id)
    throws SomeException
  {
    if (id==null)
      throw new SomeException();

    try {
      setID (Integer.valueOf (id));
    }
    catch (NumberFormatException intEx) { // catch unchecked exception
      throw new SomeException(id, intEx); // throw checked exception
    }
  }

次に、チェック済み例外のコンストラクターでinitCause、渡された例外を呼び出します。

  public SomeException (String id, Throwable reason)
  {
    this.id = id;
    initCause (reason);
  }
于 2014-12-14T20:09:10.970 に答える
2

チェックされていない例外をチェックされた例外でラップできます

try {
    // do something
} catch (RuntimeException re) {
    throw new CheckedException("Some message", re);
}
于 2014-12-14T20:13:41.440 に答える