1.异常概况
异常简介:
异常的处理作用
java异常体系结构简介
处理异常
try-catch以及try-catch-finnally
抛出异常
所有报错的基类是Throwable
非代码逻辑有问题
代码逻辑有问题
异常包括检查异常和非检查异常
2.检查异常和非检查异常
检查型异常(CheckedException)
在Java中所有不是RuntimeException派生的Exception都是检查型异常。当函数中存在抛出检查型异常的操作时该函数的函数声明中必须包含throws语句。调用改函数的函数也必须对该异常进行处理,如不进行处理则必须在调用函数上声明throws语句。
检查型异常是JAVA首创的,在编译期对异常的处理有强制性的要求。在JDK代码中大量的异常属于检查型异常,包括IOException,SQLException等等。
非检查型异常(UncheckedException)
在Java中所有RuntimeException的派生类都是非检查型异常,与检查型异常相对抛出非检查型异常可以不在函数声明中添加throws语句,调用函数上也不需要强制处理。
常见的NullPointException,ClassCastException是常见的非检查型异常。非检查型异常 可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。对于RuntimeException的子类最好也使用异常处理机制。虽然RuntimeException的异常可以不使用try...catch进行处理,但是如果一旦发生异常,则肯定会导致程序中断执行,所以,为了保证程序再出错后依然可以执行,在开发代码时最好使用try...catch的异常处理机制进行处理。
异常里面可以进行数据回滚
可以处理多种异常
在不知道的情况下也可以笼统的使用Exception
cath里面是处理异常用的,finally是最终需要执行的代码
3.异常抛出
实例代码:
package com.test.Exception;
/*
* 自定义抛出异常
*/
public class UserDefinedException extends Exception{
/*、
*无参构造函数最好写下,super()是默认写上去的。
*/
public UserDefinedException()
{
}
public UserDefinedException(String message)
{
super(message);//调用父类的构造方法,一定要放在方法的首个语句
}
}