DYNskr 2021-07-19 17:58 采纳率: 84.6%
浏览 116
已采纳

java的try-catch如果有多个catch怎么做?


class ScaryException extends Exception {}

class Exception1 extends Exception{}

public class TestExceptions{

public static void main(String[] args){

String test = "yes";

try{
System.out.println("start try");
doRisky(test);
System.out.println("end try");
}catch(Exception1 se1){
System.out.println("1 exception");
}catch(ScaryException se){
System.out.println("scary exception");
}finally{
System.out.println("finally");
}
System.out.println("end of main");
}
static void doRisky(String test) throws ScaryException,Exception1 {
System.out.println("start risky");
if("yes".equals(test)){
throw new Exception1();
}
if(true){
throw new ScaryException();}
System.out.println("end risky");
return;
}
}

调用的方法doRisky声明了两个检查异常,但是当调用方法doRisky之后发现第一个异常,doRisky抛出ScaryException异常对象,调用方catch解决异常,但是方法里还有一个检查异常没有抛出,问题是这时候已经跳转到catch(ScaryException se){}这里了,不会继续执行被调用的方法doRisky里后面的代码了,这要怎么解决?

  • 写回答

2条回答 默认 最新

  • HHeyJ 2021-07-19 18:02
    关注

    望采纳
    try-catch语句的意思是捕获try代码块内的异常,如果发生异常则说明代码块内已经报错无法继续执行了,你如果只需要捕获doRisky()方法那么把下面两个数据语句提出代码块

    System.out.println("start try");
    System.out.println("end try");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月19日
  • 创建了问题 7月19日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条