Java 异常处理
异常分类
在Java中异常被当做对象来处理,根类是java.lang.Throwable类,在Java中定义了很多异常类(如OutOfMemoryError、NullPointerException、IndexOutOfBoundsException等),这些异常类分为两大类:Error和Exception。
Error
Error是无法处理的异常,比如OutOfMemoryError,一般发生这种异常,JVM会选择终止程序。因此我们编写程序时不需要关心这类异常。
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
Exception
Exception,也就是我们经常见到的一些异常情况,比如NullPointerException、IndexOutOfBoundsException,这些异常是我们可以处理的异常。
unchecked exception(运行时异常)
运行时异常(RuntimeException),比如常见的NullPointerException、IndexOutOfBoundsException。对于运行时异常,java编译器不要求必须进行异常捕获处理或者抛出声明,由程序员自行决定。
checked exception(检查性异常)
非运行时异常(运行时异常以外的异常就是非运行时异常),java编译器强制程序员必须进行捕获处理,比如常见的IOExeption和SQLException。对于非运行时异常如果不进行捕获或者抛出声明处理,编译都不会通过。
异常捕获
Java提供了try(尝试)、catch(捕捉)、finally(最终)这三个关键字来处理异常。在处理各种异常时,需要用到对应的异常类,指的是由程序抛出的对象所属的类。
try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }
注意事项:
- catch 不能独立于 try 存在。
- 在 try/catch 后面添加 finally 块并非强制性要求的。
- try 代码后不能既没 catch 块也没 finally 块。
- try, catch, finally 块之间不能添加任何代码。
相关面试题
下面程序的结果是() public class Demo { public static String sRet = ""; public static void func(int i) { try { if (i%2==0) { throw new Exception(); } } catch (Exception e) { sRet += "0"; return; } finally { sRet += "1"; } sRet += "2"; } public static void main(String[] args) { func(1); func(2); System.out.println(sRet); } } A. 120 B. 1201 C. 12012 D. 101 正确答案: B
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- Java里面cron表达式工具类,验证corn表达式是不是正确,返回下一个执行时间根据给定的Cron表达式
- Java 里面 @InitBinder注解的使用原理
- Java 实现将long 类型转为带单位的字符串kb,mb,gb等
- 从 Java 的角度看待 Go 的内存管理| 青训营笔记
- Java操作oracle数据库提示:不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK,问题处理
- Java 实现 string类型时间转为 各种各样格式的date类型 的工具类
- 【Java入门】Java数据类型
- java 的 pagehelper.PageHelper实现分页的逻辑
- 【高并发】导致并发编程频繁出问题的“幕后黑手”
- 【高并发】解密导致并发问题的第二个幕后黑手——原子性问题
- 【高并发】一文解密诡异并发问题的第一个幕后黑手——可见性问题
- 开发直播相亲交友源码,高并发怎么做到不卡顿?
- 总之2022,我的研发、直播、软文触达13W+人的成果打包拿走,展望2023一起加油
- 【高并发】要想学好并发编程,关键是要理解这三个核心问题
- Java之赋值运算符
- Java之逻辑运算符
- Java之关系运算符
- java 根据经纬度计算圆周
- Java学习之路
- Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案