浅谈java异常

浅谈java异常

ID:26524428

大小:82.50 KB

页数:11页

时间:2018-11-27

浅谈java异常_第1页
浅谈java异常_第2页
浅谈java异常_第3页
浅谈java异常_第4页
浅谈java异常_第5页
资源描述:

《浅谈java异常》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.异常的好处异常带来诸多好处。首先,它将错误处理代码从正常代码(normalcode)中分离出来。你可以将那些执行概率为99.9%的代码封装在一个try块内,然后将异常处理代码(这些代码是不经常执行的)置于catch子句中。这种方式的好处是,正常代码因此而更简洁。如果你不知道如何处理某个方法中的一个特定错误,那么你可以在方法中抛出异常,将处理权交给其他人。如果你抛出一个检查异常(checkedexception),那么Java编译器将强制客户程序员(cilentprogrammer)处理这个潜在异常,或者捕捉之,或者在方法的thr

2、ows子句中声明之。Java编译器确保检查异常被处理,这使得Java程序更为健壮。2.Throwable类Throwable类是Java语言中所有错误或异常的超类(这就是一切皆可抛的东西)。它有两个子类:Error和Exception。Error:用于指示合理的应用程序不应该试图捕获的严重问题。这种情况是很大的问题,大到你不能处理了,所以听之任之就行了,你不用管它。比如说VirtualMachineError:当Java虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。好吧,就算这个异常的存在了,那么应该何时,如何处理它呢??交

3、给JVM吧,没有比它更专业的了。Exception:它指出了合理的应用程序想要捕获的条件。Exception又分为两类:一种是CheckedException,一种是UncheckedException。这两种Exception的区别主要是CheckedException需要用try...catch...显示的捕获,而UncheckedException不需要捕获。通常UncheckedException又叫做RuntimeException。《effectivejava》指出:对于可恢复的条件使用被检查的异常(CheckedExc

4、eption),对于程序错误(言外之意不可恢复,大错已经酿成)使用运行时异常(RuntimeException)。我们常见的RuntimeExcepiton有IllegalArgumentException、IllegalStateException、NullPointerException、IndexOutOfBoundsException等等。对于那些CheckedException就不胜枚举了,我们在编写程序过程中try...catch...捕捉的异常都是CheckedException。io包中的IOException及其子

5、类,这些都是CheckedException。3.检查型异常和非检查型异常检查型异常是Exception的子类(或者Exception类本身),但不包括RuntimeException和它的子类。非检查型异常是RuntimeException和它的任何子类。Error类及其子类也是检查型的(错误),但是你应该仅着眼于异常,你所做的应该是决定抛出RuntimeException的子类(非检查异常)还是Exception的子类(检查异常)如果抛出了检查型异常(而没有捕获它),那么你需要在方法的throws子句中声明该异常。客户程序员使用

6、这个方法,他要么在其方法内捕获并处理这个异常,要么还在throws子句中抛出。检查型异常强制客户程序员对可能抛出的异常采取措施。如果你抛出的是非检查型异常,那么客户程序员可以决定捕获与否。然而,编译器并不强制客户程序员对非检查型异常采取措施。事实上,他们甚至不知道可能这些异常。显然,在非检查型异常上客户程序员会少费些脑筋。1.简单的原则如果希望客户程序员有意识地采取措施,那么抛出检查型异常。一般而言,表示类的误用的异常应该是非检查型异常。String类的chartAt()方法抛出的StringIndexOutOfBoundsExce

7、ption就是一个非检查型异常。String类的设计者并不打算强制客户程序员每次调用charAt(intindex)时都检查index参数的合法性。另一方面,java.io.FileInputStream类的read()方法抛出的是IOException,这是一个检查异常。这个异常表明尝试读取文件时出错了。这并不意味着客户程序员错误地使用了FileInputStream类,而是说这个方法无法履行它地职责,即从文件中读出下一个字节。FileInputStream类地设计者认为这个意外情况很普遍,也很重要,因而强制客户程序员处理之。这就

8、是窍门所在。如果意外情况是方法无法履行职责,而你又认为它很普遍或很重要,客户程序员必须采取措施,那么抛出检查型异常。否则,抛出非检查型异常。2.结论异常设计原则:a.如果方法遭遇了一个无法处理的意外情况,那么抛出一个异常。b.避免使用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。