抛出方法之外的异常 - Java

时间:2015-11-28 03:06:16

标签: java exception throw checked-exceptions

我是Java的初学者。

我将方法声明为public void method() throws Exception,但每当我尝试使用method();在同一个类的另一个区域中调用该方法时,我都会收到错误:

Error: unreported exception java.lang.Exception; must be caught or declared to be thrown

如何在不收到此错误的情况下使用该方法?

3 个答案:

答案 0 :(得分:5)

在另一个调用method()的方法中,您必须以某种方式处理method()抛出的异常。在某些时候,它需要被捕获,或者一直声明为启动整个程序的main()方法。所以,要么抓住例外:

try {
    method();
} catch (Exception e) {
    // Do what you want to do whenever method() fails
}

或以其他方法声明:

public void otherMethod() throws Exception {
    method();
}

答案 1 :(得分:3)

throws关键字用于声明异常。 和throw关键字用于显式抛出异常。 如果你想定义一个用户定义异常,那么......

class exps extends Exception{
exps(String s){
    super(s);
 }
}

class input{
 input(String s) throws exps {
     throw new exps(s);
 }

}

public class exp{
 public static void main(String[] args){
     try{
         new input("Wrong input");
     }catch(exps e){
        System.out.println(e.getMessage());
     }
  }
}

Java try block用于包含可能引发异常的代码。它必须在方法中使用。

答案 2 :(得分:0)

您需要使用try-catch块围绕method()调用,如下所示:

try {
    method();
} catch (Exception e) {
    //do whatever
}

或者,您可以在调用throws的方法中添加method() 例如:

public void callingMethod() throws Exception {
    method();
}