Java异常:选择Checked Exception还是Unchecked Exception?
来源:互联网 发布:淘宝长款半身裙 编辑:程序博客网 时间:2024/06/06 05:16
Java包含两种异常:checked异常和unchecked异常。C#只有unchecked异常。checked和unchecked异常之间的区别是:
运行时异常在运行期间才能被检查出来,Checked在编译时就能确定,一般运行期异常不需要处理,Checked异常需要自己处理
- Checked异常必须被显式地捕获或者传递,如Basic try-catch-finally Exception Handling一文中所说。而unchecked异常则可以不必捕获或抛出。
- Checked异常继承java.lang.Exception类。Unchecked异常继承自java.lang.RuntimeException类。
有许多支持或者反对二者甚至是否应该使用checked异常的争论。本文将讨论一些常见的观点。开始之前,先澄清一个问题:
Checked和unchecked异常从功能的角度来讲是等价的。可以用checked异常实现的功能必然也可以用unchecked异常实现,反之亦然。
选择checked异常还是unchecked异常是个人习惯或者组织规定问题。并不存在谁比谁强大的问题。
Java中所有异常或者错误都继承Throwable,我们把它分为三类吧:
1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。
2.Exception:这个属于应用程序级别的异常,这类异常必须捕捉。
3.RuntimeException:奇怪RuntimeException继承了Exception,而不是直接继Error, 这个表示系统异常,比较严重。
Error我们很少遇到,但是并不是说Error就一定非常致命,举个例子,NoSuchMethodError表示没有这个方法,你调用的方法不存在,你一定觉得奇怪,不存在怎么编译的过去呀?很简单的,你先编译好一个被调用的类A,给一个方法。然后在你的程序调用它,编译没问题,运行也没问题。现在再把A类中这个方法去掉,重新编译一遍,你再运行你的程序就知道错误是怎么回事了。
Exception不用说,我们要自己捕捉。
RuntimeException可以说见的最多了,下面我们说明一下常见的RuntimeException:
NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。
ArrayIndexOutOfBoundsException:数组越界
比如 int[] a=new int[3]; int b=a[3];
ClassCastException:类型转换错误
比如 Object obj=new Object(); String s=(String)obj;
0 0
- Java异常:选择Checked Exception还是Unchecked Exception?
- Java异常:选择Checked Exception还是Unchecked Exception?
- Java异常:选择Checked Exception还是Unchecked Exception?
- Java异常:选择Checked Exception还是Unchecked Exception?
- Java异常:选择Checked Exception还是Unchecked Exception?
- Java异常:选择Checked Exception还是Unchecked Exception?
- Java异常:选择Checked Exception还是Unchecked Exception?
- unchecked Exception & checked Exception
- unchecked Exception & checked Exception
- Java - Checked vs Unchecked Exception
- Java中的checked exception和unchecked exception
- java异常—检查异常(checked exception)和未检查异常(unchecked exception)
- 异常管理 - Java异常处理分析 (Unchecked Exception VS Checked Exception)
- Checked exception vs Unchecked exception
- checked exception and unchecked exception
- checked exception和unchecked exception
- Checked Exception and UnChecked Exception
- Unchecked Exception 和 Checked Exception
- oracle中sign函数
- Java RMI详解
- 网易视频云分享:1.5亿活跃用户背后的Twitter架构
- Java - 计蒜客 - 罗马数字转换成整数
- javabean以及内省技术的详解
- Java异常:选择Checked Exception还是Unchecked Exception?
- Ubuntu 16.04安装Docker-Compose
- codeforces-3A-Shortest path of the king( 棋盘最短路径 + 贪心 )
- UG二次开发与Visual Studio的配置
- Java - 计蒜客 - 最后一个单词的长度
- 由jpg文件生成ico图标文件的方法!!!
- 文件比较软件有哪些
- Java日期转换SimpleDateFormat格式大全
- 关于c++指针