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