疯狂JAVA讲义---第十章:异常处理
来源:互联网 发布:windows 图标改小 编辑:程序博客网 时间:2024/04/29 08:05
Java的异常处理主要通过try,catch,finally,throw,throws五个关键字。
Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception,Java异常体系结构呈树状,如下
下面举个异常类常见使用,eg
- public class TestDiv
- {
- public static void main(String[] args)
- {
- try
- {
- int a = Integer.parseInt(args[0]);
- int b = Integer.parseInt(args[1]);
- int c = a / b;
- System.out.println("您输入的两个数相除的结果是:" + a / b);
- }
- catch (IndexOutOfBoundsException ie)
- {
- System.out.println("数组越界:运行程序时输入的参数个数不够");
- }
- catch (NumberFormatException ne)
- {
- System.out.println("数字格式异常:程序只能接受整数参数");
- }
- catch (ArithmeticException ae)
- {
- System.out.println("算术异常");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.out.println("未知异常");
- }
- }
- }
这里要注意:一定要先捕获小的异常
finally主要用在回收写物理资源(网络连接,数据库连接,文件连接等),eg
这里要注意:finally中不要使用return或throw,因为这会使try,catch中的return或throw失效 java独特的提供了checked异常这使一些问题能在编译时就解决。 下面再举throw和throws的例子,eg 然后我简单讲下,自定义异常类,其实只要继承另外的异常类,实现2个构造方法,eg 利用catch和throw同时使用形成异常链,eg 这样异常越来越精确,便于调试,纠错。 异常跟踪栈(printStackTrace这方法就是打出的)这是为了方便你找到异常的源头。使用IDE的人调试时都离不开它。 下面举两个典型例子,大家随便加点断点,单步走走,看看堆栈,一定收获颇丰,eg 下面这个例子加强你的多线程的调试能力 最后警告句: 能自己处理的异常就自己处理掉,抛出异常系统开销很大,try..catch的范围越小越好,大家不要偷懒,不然不容易发现问题。 能自己处理的异常就自己处理掉,抛出异常系统开销很大,try..catch的范围越小越好,大家不要偷懒,不然不容易发现问题。
- 疯狂JAVA讲义---第十章:异常处理
- [疯狂Java讲义精粹] 第八章|异常处理
- Java疯狂讲义读书笔记第十章
- [疯狂Java讲义精粹] 第十章|输入/输出
- 疯狂JAVA讲义---第十四章:APT处理annotation
- 疯狂JAVA讲义---第八章:泛型
- 疯狂JAVA讲义---第十八章:类加载
- [疯狂java讲义精粹] 第七章|泛型
- [疯狂Java讲义精粹] 第十一章|多线程
- 疯狂java 讲义第三章练习题---画圆
- 疯狂java讲义第四章第一题
- 疯狂java 讲义第三章练习题---画圆
- 疯狂JAVA讲义第三章练习
- 疯狂java讲义--第三章习题 画圆
- Java疯狂讲义第五章笔记
- 《疯狂java讲义》第4章思考
- 《疯狂java讲义》第四章五子棋思考
- Java疯狂讲义读书笔记第三章
- 怎样写你自己的EMAIL组件(原理)
- 改善ASP性能和外观的技巧集锦(上)
- 《这句英语怎么说?》之生活篇
- 用迭代法求Daubechies小波的尺度函数
- 改mdb为asp所带来的灾难
- 疯狂JAVA讲义---第十章:异常处理
- NHibernate学习
- 在ASP中调用DCOM组件的应用技巧
- asp中ADO的优化
- resin 配置与使用
- 动态加载js文件
- SQL语句中的;带来的问题
- C# Code Analyser 1.2.3发布
- ASP创建对象的技巧