签名声明抛出异常:方法/构造函数不应显式抛出java.lang.Exception

签名声明抛出异常:方法/构造函数不应显式抛出java.lang.Exception,java,Java,我在声纳上得到这个警告。此警告的正确解决方案是什么。 我的方法是: public void abc(A a) throws Exeption { dao.pqr(a); } 我在课堂上得到了这个方法的警告。什么是正确的解决方案?如果你抛出异常,不清楚该方法可以作为异常抛出的异常是非常通用的。如果你抛出异常,目前还不清楚该方法可以作为异常抛出的异常是非常通用的。如果已知实际异常,则应该抛出它们 如果您调用的方法引发异常,而您无法更改它,则除了抑制警告之外,您无能为力。如果已知实

我在声纳上得到这个警告。此警告的正确解决方案是什么。 我的方法是:

public void abc(A a) throws Exeption {

        dao.pqr(a);
}

我在课堂上得到了这个方法的警告。什么是正确的解决方案?

如果你抛出异常,不清楚该方法可以作为异常抛出的异常是非常通用的。

如果你抛出异常,目前还不清楚该方法可以作为异常抛出的异常是非常通用的。

如果已知实际异常,则应该抛出它们


如果您调用的方法引发异常,而您无法更改它,则除了抑制警告之外,您无能为力。

如果已知实际异常,您应该引发它们


如果您调用的方法引发异常,并且您无法更改它,那么除了抑制警告之外,您将无能为力。

。异常是所有异常的根,因此请尽量更具体。

。异常是所有异常的根,因此请尽量更具体。

您可以捕获异常并将其重新转换为特定异常

 protected RunningJob submitJob(Configuration actionConf) throws RuntimeException {
    .....
    RunningJob rj;
    try{
        rj = super.submitJob(actionConf);
    }catch(Exception e){
        throw new RuntimeException(e);
    }
    return rj;
 }

您可以捕获异常并将其重新转换为特定异常

 protected RunningJob submitJob(Configuration actionConf) throws RuntimeException {
    .....
    RunningJob rj;
    try{
        rj = super.submitJob(actionConf);
    }catch(Exception e){
        throw new RuntimeException(e);
    }
    return rj;
 }