java异常处理语句

一、先用简单的代码来了解:

//在Test.java中

public class Test{
  public static void main(String[] args){
      //设计个错误的除法,来该捕获异常
      
      
      //1. 不知道具体异常

      try{
          //可能出异常的语句
          double result = 2/0;  

      }catch(Exception e){
          //把捕获的Exception异常作为e,并输出
          System.out.println("我不知道具体是什么异常,捕获的第一个异常为:"+e);     
      }
      


      //2. 知道具体异常,属于ArithmeticException异常

      try{
          //可能出异常的语句
          double result = 10/0;

      }catch(ArithmeticException e1){
          //把捕获的ArithmeticException异常作为e1,并输出
          System.out.println("我知道是ArithmeticException类异常,捕获到该异常为:"+e1); 
   
      }finally{
          System.out.println("第二个异常语句执行完毕");
      }

      

      System.out.println("总程序运行完毕");


  }
}

运行结果

上代码总结:

  • 异常语句结构为:   

        try...catch(必要结构,finally为可选)

        try的代码体中放的是可能出现异常的语句

        catch小括号中参数为要捕获的异常类,catch的代码体中是捕获到异常时执行的逻辑语句

        finally的代码体中放的是最终还要执行的语句

  • 若不明具体异常,可以用异常的顶级父类Exception作为要捕获的异常,会捕获存在的第一个异常并返回,再将其所捕获的输出就能看到具体是什么异常了
  • 若明知是属于哪类异常,直接用catch去捕获该类异常即可(不会捕获到其他的异常)
  • 通过上代码我们也可看出异常捕获语句的好处:不影响总程序的运行!!!

二、多异常捕获:

//在Test.java中

public class Test{  
	
  //main方法
	public static void main(String[] args){
        //可能出异常的语句
		try {
			int a = 10/0;
			int[] arr = new int[-10];
	
		}catch(ArithmeticException e1) {
			System.out.println(e1);
			System.out.println("异常捕获1");
			
		}catch(NegativeArraySizeException e2) {
			System.out.println(e2);
			System.out.println("异常捕获2");
		}
		

	}
}

运行结果:

 上代码总结

  • 通过添加catch分支去捕获不同异常类
  • 当某个catch捕获到第一个异常后,其后catch将不再执行

三、方法抛出异常修饰

//在Test.java中

public class Test{

    //使用throws关键字抛出异常
	public void func() throws Exception{
        //可能出异常的语句
		int[] arr = new int[-10];
	}

    
    //main方法
	public static void main(String[] args){
		Test t = new Test();

		try {
			t.func();  //可能出现异常的语句
		}catch(Exception e) {
			System.out.println(e);
		}

	}

}

运行结果

上代码总结

  • 方法抛出异常,使用关键字throws(表示可能出异常的方法),throws后接异常类
  • 方法用throws修饰后,该方法的执行必须要用到异常处理语句(try...catch)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值