关于java Exception error runtimeException 还有非runtimeException
来源:互联网 发布:av淘宝7m视频2017淘 编辑:程序博客网 时间:2024/05/29 12:36
今天看了一篇博客,java异常的,我觉得写得很通俗易懂 ,在这里记录一下。
先说说error,error一般是jvm抛出,内存资源耗尽或者一些内部问题,这个不应该出现在应用程序中,一般不去管它,而应该把精力放在Exception上。
Exception继承体系,基类为Throwable,error和Exception继承于Throwable,runtimeException和ioException继承与Exception,具体的runtimeException继承于runtimeException。
RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
声明:throwsthrows在函数的括号之后用,将需要抛出的异常进行声明,一个方法是否抛出异常和函数的返回值一样重要,如果不声明异常,而且内部没有自己编写的异常处理,那么方法就不知道该用什么异常控制器来处理。
throw用来抛出指定异常。
抛出什么异常?对于一个异常对象,真正有用的信息时异常的对象类型,而异常对象本身毫无意义。比如一个异常对象的类型是ClassCastException,那么这个类名就是唯一有用的信息。所以,在选择抛出什么异常时,最关键的就是选择异常的类名能够明确说明异常情况的类。
异常对象通常有两种构造函数:一种是无参数的构造函数;另一种是带一个字符串的构造函数,这个字符串将作为这个异常对象除了类型名以外的额外说明。
创建自己的异常:当Java内置的异常都不能明确的说明异常情况的时候,需要创建自己的异常。需要注意的是,唯一有用的就是类型名这个信息。
捕获异常,try,catch,finally,不管异常处理结果怎么样,都会进入到finally。
① 过度使用异常 :首先,使用异常很方便,所以程序员一般不再愿意编写处理错误的代码,而仅仅是简简单单的抛出一个异常。这样做是不对的,对于完全已知的错误,应该编写处理这种错误的代码,增加程序的鲁棒性。另外,异常机制的效率很差。
② 将异常与普通错误区分开:对于普通的完全一致的错误,应该编写处理这种错误的代码,增加程序的鲁棒性。只有外部的不能确定和预知的运行时错误才需要使用异常。
③ 异常对象中包含的信息 :一般情况下,异常对象唯一有用的信息就是类型信息。但使用异常带字符串的构造函数时,这个字符串还可以作为额外的信息。调用异常对象的getMessage()、toString()或者printStackTrace()方法可以分别得到异常对象的额外信息、类名和调用堆栈的信息。并且后一种包含的信息是前一种的超集。
总之,异常经历了一个抛出捕获处理结束的过程。
最后,再引用thinking injava中的异常使用指南来结束,
1.在恰当的级别处理问题(在你知道如何处理的时候才去捕获)
2.解决并重新调用产生异常的方法。
3.进行少许修补,然后绕过异常发生的地方继续执行。
4.用别的数据进行计算,以替代方法返回的期望值。
5,6。把当前运行环境下能做的事情尽量做完,然后把相同的(不同的)的异常重抛(抛)到更高的地方
7.终止程序。
9.进行简化。
10.让类库和程序更安全。
- 关于java Exception error runtimeException 还有非runtimeException
- java error exception runtimeexception
- java Throwable Exception Error RuntimeException
- Error和Exception、RuntimeException和非RuntimeException的区别
- java error和exception的区别,RuntimeException和非RuntimeException的区别
- Exception,RuntimeException,Error区别
- Exception,RuntimeException,Error区别
- exception、runtimeException、error
- Error、Exception、RuntimeException
- Error 、 Exception And RuntimeException
- 异常-RuntimeException-Error-Exception
- error exception runtimeexception
- Java异常Error、Exception、RunTimeException、Throwable
- java Exception(runtimeException )
- java Exception RuntimeException
- error和exception的区别,RuntimeException和非RuntimeException的区别
- 几个问题(六)-------error和exception的区别,RuntimeException和非RuntimeException的区
- error和exception的区别,RuntimeException和非RuntimeException的区别
- 高手速成android开源项目【项目篇】
- c3p0配置信息
- 会走了才会跑
- google map api key申请
- java解决中文乱码的几种情况
- 关于java Exception error runtimeException 还有非runtimeException
- Flex中使用HTTPService向后发送请求,参数中如何使用URL的保留字符(问号、百分号)
- HDU 1796 How many integers can you find 解题报告(数论)
- 使用structs2进行ognl进行各种html元素输入数据
- PAT basic 1015 : 德才论
- Android中shape的解析
- HBase伪分布式安装的简单步骤记录
- ubuntu修改主机名
- linux trap的翻译问题