Java异常

来源:互联网 发布:赛亚人网络 编辑:程序博客网 时间:2024/05/29 15:00

1.行为的意外结果

2.一个方法如果抛出了异常,这个方法就必须声明异常的抛出。异常的声明:在方法上声明方法的意外结果,如:

3.异常一般继承与Exception

4.调用抛出异常的方法必须处理异常

4.1 用try catch finally捕获

4.2直接再抛出异常

5.若代码发生异常,一场之后的代码将不再执行。

6.try catch finally

try是尝试运行的代码块,如果有异常,会被随后的catch捕获,异常发生之后,代码不运行

catch代码块是异常处理的代码,需要提供合理的处理,异常的处理与具体业务逻辑有关,可以写多个catch处理一系列异常,但是需要注意异常的大小关系,大类型放到后面处理。有时候catch(Exception)粗粒度处理异常,代码简介,语意含糊,根据业务逻辑适当选用。

finally代码块不论是否出现异常,总会执行的代码块,经常用来处理异常现场的清理,比如,可靠数据库连接关闭。

7.异常有一个基本原则;能够底层处理的尽量底层处理,但是如果不能处理,必须抛出到调用者(方法),不应该简单的抛弃。

8.异常捕获再抛出,是一种将底层异常进行封装,转换成另一种异常类型。

9.建议在捕获到异常时使用e.printStackTrace(),打印到控制台,输出的内容是:出现异常时候的方法调用堆栈。一般情况下,凡是捕获异常代码都输出:e.printStackTrace().

10.异常分类:

Throwable:

Error:系统不可回复的错误,由JVM发生。

----OutOfMemoryError 堆内存溢出

----StackOverFlowError 栈内存溢出

Exception:程序可以检查处理的异常,常见的异常根

---java.text.ParseExeption format解析对象时发生,日期字符串错误,抛出异常

如:Date date=dateformat.parse("2012-08-06");

----RuntimeException 非检查异常,java忽略对此异常语法检查,如异常抛出

--------IllegalArgumentException 方法参数传递异常

--------NullPointerException 空指针异常

--------ArrayIndexOutOfBoundsException 数组业界

--------ClassCastException 类型转换错误

--------NumberFormatException 字符串转换异常

11.数组中会使用大量自定义异常,一般从Exception继承。异常类命名要有实际意义。