栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java异常

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java异常

一、什么是异常

实际程序运行场景不会是一切都很完美,会遇到各种不合规、资源短缺、操作失误等问题。这些各种实际情况可能引起程序运行时出现不期而遇的非正常状况。这就是异常。

二、异常分类

java设计之初就提供了一整套异常处理机制,顶级超类Throwablle,往下分为Exception和Error两大接口。

  • ** Exception **:程序员可以处理的情况;
  • ** Error **:是错误,程序员无法处理的问题,通常不必管它,尽量避免。如栈溢出,写程序时尽量避免大量使用内存资源而不释放,一旦出现这种错误无法处理,只能停止程序重启。
Exception 通常也分为两类:

1、 检查性异常:Checked Exception 如要读取的文件不存在、sql执行异常,这样的异常不能在编译时简单地忽略。开发工具会直接提示无法正常编译(报红)。
Exception的子类除RuntimeException外的其他异常都属于这一类,所以”非运行时异常“更便于记忆和理解。
如:IOException(EOFException、FileNotFoundException)、sqlException。

2、 运行时异常:RuntimeException 程序运行时可能被程序员避免的异常。编译时忽略,运行时才出现。
RuntimeException 类及所有子类。
如:ClassNotFoundException、NullPointerException、ArrayIndexOutOfBoundException等。

三、处理

try{…}catch{…}语句

try{
正常业务逻辑语句
}catch(想要捕获的异常类型,多个时,有小到大写。可以捕获Error){
处理捕获的异常
} finally{
该块可省,处理善后工作,是否出现异常都会执行
}

** throws和throw区别:**
throws用在方法声明中,表示该方法可能会抛出异常,而且是检查性异常,外层方法必须在编译时不能忽略。throws后跟的是异常类型。
throw用在方法体,一般是catch子句中将异常抛出。throw后跟的是一场对象,当throw的是运行时异常,方法名后无须thows,如果是检查性异常,就必须thows了。

五、扩展

1、try catch fifinally,try里有return,finally还执行么?
执行,并且finally的执行早于try里面的return
结论:
1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保
存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是
在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/276900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号