在方法中抛出异常
博客专区 > wf王帆 的博客 > 博客详情
在方法中抛出异常
wf王帆 发表于2年前
在方法中抛出异常
  • 发表于 2年前
  • 阅读 108
  • 收藏 0
  • 点赞 2
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

 若某个方法可能会发生异常,但不想在当前方法中处理这个异常,则可以使用throws,throw关键字在方法中抛出异常。

throws关键字通常被应用在声明方法时,用来指定方法可能抛出的异常,多个异常可使用逗号分离。

public class Shoot{

static void pop()throws NegativeArraySizeException{

//定义方法并抛出NegativeArraySizeException异常

int[]arr=new int[-3];

}

public static void main(String[]args){

try{

pop();

}catch(NegativeArraySizeException e){

System.out.println("pop()方法抛出的异常");

           }

      }

 }

使用throws关键字将异常抛给上一级后,如果不想处理该异常,可以继续向上抛出,但最终能有处理该异常的代码。

throw关键字通常用于方法体中,并且抛出一个异常对象。程序在执行throw语句时立即终止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获该异常,则需要在抛出的方法中使用throws关键字在方法的声明中指出要抛出的异常,如果要捕获throw抛出的异常,则必须使用try-catch语句块。

public class Captor{

static int quotient(int x,int y)throws myException{

if(y<0){

throw new MyException("除数不能是负数");

}

return x/y;

}

public ststic void main(String args[]){

try{

int result=quotient(3,-1);

}catch(MyException e){

System.out.println(e.getMessage());

}catch(ArithmeticException e){

System.out.println("除数不能为0");

}catch(Exception e){

System.out.println("程序发生了其他的异常");

     }

   }

 }

上面的实例使用了多个catch语句来捕捉异常。如果调用quotient(3,-1)方法,将发生MyException异常,程序调转到catch(MyException e)代码块中执行;如果调用quotient(5,0)方法,会发生ArithmeticException异常,程序调转到catch(ArthmeticException e)代码块中执行;如果还有其他异常发生,将使用catch(Exception e)捕获异常。由于Exception是所有异常类的父类,如果将catcah(Exception e)代码块放在其他两个代码块的前面,后面的代码块将永远得不到执行,也就没有什么意义了,所以catch语句的顺序不可替换。

共有 人打赏支持
粉丝 6
博文 64
码字总数 9386
×
wf王帆
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: