韩顺平java基础-12-异常

韩顺平java基础-12-异常

异常

基本概念

语法错误、逻辑错误不属于异常,区分语法错误、逻辑错误与异常的区别

分类

  1. Error:指编译器无法处理解决的错误,可能是语法错误、逻辑错误。
  2. Exception:编译时异常、运行时异常

异常体系图

异常分为运行时异常与编译时异常

  1. 运行时异常,编译器检查不出来,一般是编程时的逻辑错误。可以不做处理
  2. 编译时异常,是编译器要求必须处理的异常。

常见运行时异常

  1. NullPointerException 空指针异常

在需要使用对象时,对象为空

  1. ArithmeticException 数学运算异常

数字运算时发生异常,如除法中,除数为0

  1. ArrayIndexOutOfBoundsException 数组下标越界异常

数组越界,如遍历数组时,超出数组范围

  1. ClassCastException 类型转换异常

类型转换时发生异常,如向下转型,编译类型与运行类型不匹配

  1. NumberFormatException 数字格式不正确异常

如字符串转换成整数类型发生异常


编译异常

在编译时就必须处理的异常


异常处理-机制

  1. try-catch-finally
 try{

代码//可能出现异常}

catch(Exception e){

//捕获异常后处理(若没有异常发生,则不会执行)}

finally{

//不管是否发生异常,始终要执行finally

//通常放入释放资源的代码}
  1. throws

抛出异常至上一级,->jvm虚拟机:输出异常信息、退出程序

若没有任何处理,默认使用throws处理异常


异常处理细节

  1. 如果可能有多个异常,可以使用多catch语法,分别捕获具体的异常,要求子类异常在前,父类异常在后。
  2. 可以使用try-finally 异常仍然会使程序崩溃,但依然会执行finally
  3. 没有出现异常,则执行try中所有语句,catch将不再执行,如果有finally,最后执行finally
  4. 出现异常,try剩余语句不再执行,执行catch语句,若有finally,还要执行finally语句
posted @ 2024-01-10 11:11  forest-pan  阅读(10)  评论(0编辑  收藏  举报