异常Exception(未完)

异常Exception

try{
aa.divide(6,0)  //6/0的意思    
}
catch(Exception e){//e用来接收抛出的异常对象
    e.printStackTrace();//可以简单地理解为输出该异常的具体信息
        System.out.printf("除零错误");
    }

异常不是编译时所出现的错误,Error Excepetion不一样

异常并不能用if else来处理

​
​
package testexpect;
​
import java.util.InputMismatchException;
import java.util.Scanner;
​
public class TestExpect {
​
    public static void main(String[] args) {
       int i;
      Scanner sc =  new Scanner (System.in);//表示键盘的意思 标准的键盘输入流
      try{
           i = sc.nextInt();
    System.out.printf("%d",i);
          
      }      catch(InputMismatchException e){
   System.out.printf("输入数据不合法,程序被终止!\n");
      }
   
    }
    
}
​

异常的处理机制

  1. 当Java程序运行时出现问题时,系统会自动检测到改错误,并立即生成一个与该错误对应的异常对象

  2. 然后把异常交给Java虚拟机

  3. Java虚拟机会自动寻找相应的处理代码来处理这个异常,如果没有找到,则由Java须以积极做一些简单的处理后,程序被强行终止

  4. 程序员可以自己编写代码来捕捉可能出现的异常,并编写代码来处理相应的异常

    异常的分类

    1. Error的系统错误,程序员无法处理这些异常

    2. Exception是程序员可以捕获并处理的异常

    3. RuntimeException但又不是RuntimeException子类的异常我们都必须捕捉并进行处理

      异常处理步骤

      try{
          可能出现异常的代码块
      }
      catch (ExpectionName1 e){
          当产生ExpectionName1异常的处理措施
      }
      catch (ExpectionName2 e){
          当产生ExpectionName2异常的处理措施
      }
      ........
          finally{
              无论是否捕捉到异常都处理得代码
          }

finally语句为异常处理提供一个唯一的出口,是得在控制流程转到程序的其他部分以前,能够对程序的状态做统一的管理

上一篇:redisson 异常 IllegalArgumentException: port out of range:-1


下一篇:Abp Vnext 中如何统一接口返回值