一、前言
jdk中本身提供丰富的异常处理类(参见JDK提供的异常类),但项目中还会自定义很多异常,主要因为jdk提供的异常只正对代码本身需求做的定义,对于实际需求要根据业务来自定义异常(年龄大于200、用户不存在)- 用户不存在异常UserNotFoundException、用户没有授权异常UserNotAuthorityException等。在分层软件结构中,通常会在表现层对系统其他层次的异常进行捕获处理,如需表现层处理不同的异常,就需要自定义异常,然后针对自定义异常特殊处理
二、语法格式
在自定义异常时,通常继承Exception或者子类实现,也可以直接继承Throwable,格式如下:
1
|
public
class
自定义异常
extends
Exception{}
|
三、示例说明
先自定义异常类,如用户不存在异常UserNotFoundException
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public
class
UserNotFoundException
extends
Exception{
public
UserNotFoundException () {
super
();
}
public
UserNotFoundException (String message) {
super
(message);
}
public
UserNotFoundException (Throwable cause) {
super
(cause);
}
public
UserNotFoundException (String message, Throwable cause) {
super
(message, cause);
}
}
|
异常使用场景类,如用户登录时进行定义方法如下
1
2
3
4
|
public
void
login()
throws
UserNotFoundException{
if
(条件不满足){
throw
new
UserNotFoundException(
"用户不存在!"
); }
}
|
或者
1
2
3
4
5
6
7
|
public
void
login2()
throws
UserNotFoundException{
try
{
//符合用户不存在异常
}
catch
(Exception e){
throw
new
UserNotFoundException(
"用户不存在!"
);
}
|