异常处理

异常分类

Java语言按照错误严重性,从throwale根类衍生出Error和Exception两大派系

Error(错误):

  • 程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。
  • 常见的错误有内存溢出,jvm虚拟机自身的非正常运行,calss文件没有主方法。
  • 程序本生是不能处理错误的,只能依靠外界干预。Error是系统内部的错误,由jvm抛出,交给系统来处理。

EXCEPTION(异常):

  • 是程序正常运行中,可以预料的意外情况。
  • 比如数据库连接中断,空指针,数组下标越界。
  • 异常出现可以导致程序非正常终止,也可以预先检测,被捕获处理掉,使程序继续运行。

EXCEPTION(异常)按照性质,又分为编译异常(可检测)和运行时异常(不可检测)。

  • 编译时异常
    • 又叫可检查异常,通常时由语法错误和环境因素(外部资源)造成的异常。
    • 比如输入输出异常IOException,数据库操作SQLException。
    • 其特点是Java语言强制要求捕获和处理所有非运行时异常。通过行为规范,强化程序的健壮性和安全性。
  • 运行时异常
    • 又叫不检查异常RuntimeException,这些异常一般是由程序逻辑错误引起的,即语义错误。
    • 比如算术异常,空指针异常NullPointerException,下标越界IndexOutOfBoundsException。运行时异常应该在程序测试期间被暴露出来,由程序员去调试,而避免捕获。
    • java语言处理运行时错误有三种方式:
      • 程序不能处理的错误
      • 程序应该避免而可以不去捕获的运行时异常
      • 必须捕获的非运行时异常。

抛出异常

try{
   
可能发生异常的代码块
}catch(可以捕获的异常1{
   
处理异常1的代码
}catch(可以捕获的异常2{
   
处理异常2的代码
}finally{
   
处理完所有异常后一定会执行的代码。
在这里注意的事。如果在这里没有出现异常,最终也会执行这行代码
}

注意:
finally不会被执行的情况

  • 在finally语句块中发生了异常
  • 在前面的代码中使用了System.exit()退出程序
  • 程序所在的线程死亡
  • 关闭CPU
全部评论

相关推荐

02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
牛客765689665号:没有实习是硬伤,央国企看学历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务