2016-11-02 23 views
-1

が、私は例外を作成します!が例外をスローすることは未処理の例外のエラー

Eclipseで提案されている解決策がありますが、私はそれらをフォローしたくありません!では、なぜこのエラーはありますか?

+2

に従うようにあなたの方法は次のようになります。http://stackoverflow.com/questions/6115896/java-checked-vs-unchecked-exception-explanationあなたが宣言するようになった – home

+2

あなたのメソッドで例外をスローするかもしれません。 – Sikorski

答えて

1

一般的にまたはほとんどのシナリオでは、java.lang.Exceptionクラスを直接拡張することによって決してカスタム例外を作成することはありません。java.lang.RuntimeExceptionクラスを拡張する必要があります(またはサブタイプがさらに望ましい)。

現在PkDeleteExceptionが例外をチェックされているとして、あなたは、あなたのメソッドのシグネチャで使用していることを宣言する必要がある句(オプション-2、好ましくない)を投げるかのベストプラクティスは、チェックされない例外に変換することである(オプション-1以下のような):

オプション(1) - 利用未確認の例外(好ましい):

public class PkDeleteException extends RuntimeExcetion { 

    private static final long serialVersionUID = 1L; 

    public PkDeleteException(String msg) { 

     super(msg); 

    } 

} 

オプションは、(2):あなたのMETを変更

public void del(@RequestParam String id) throws PkDeleteException

public void del(@RequestParam String id)

から

HOD署名は、私はあなたがPkDeleteExceptionをスローする必要がありhere

-1

あなたのデルの方法を見てすることをお勧めします。 ちょうど約未確認の例外対確認読み取り

public void del(@RequestParam String id) throws PkDeleteException { 

    try { 

     roleDao.delete(id); 

    } catch (org.hibernate.exception.ConstraintViolationException e) { 

     Role role = roleDao.get(id); 

     String errMsg = env.getProperty("admin.list.profils.err.suppr"); 

     errMsg = errMsg.replace("%s", role.getRole_lib()); 

     throw new PkDeleteException(errMsg); 

    } 

} 
+0

重要な部分について説明してください:メソッドの 'throws'宣言 –