有些问题,是和程序无关的,属于我们自己系统的业务流程问题。这种的,就叫做业务异常,业务异常就属于自定义异常。
步骤 1 自定义异常的语法
前面所讲的异常,都是系统自带的,系统自己处理,但是很多时候项目会出现特有问题,而这些问题并未被java所描述并封装成对象,所以对于这些特有的问题可以按照java的对问题封装的思想,将特有的问题进行自定义异常封装。在Java中要想创建自定义异常,需要继承Throwable或者他的子类Exception。
class 自定义异常类 extends 异常类型(Exception){
// 因为父类已经把异常信息的操作都完成了,所在子类只要在构造时,将异常信息传递给父类通过super 语句即可。
// 重写 有参 和 无参 构造方法
}
步骤 2 什么时候需要用到自定义异常?
当某些错误是你自己来决定的,如果发生就不允许程序继续走下去,但是系统自带的异常又都不符合你的要求,这个时候就需要你自己来定义一个异常。
步骤 3 工作中如何使用自定义异常?
我可以很负责任的说,90%的JavaWeb系统,都有一个自定义异常叫做 BusinessException(业务异常)。
就是当业务流程发生错误了,立刻抛出这个异常,让系统能够感知到。
创建一个异常的包:
自定义业务异常类:
package exception;
public class BusinessException extends RuntimeException{
public BusinessException() {
}
public BusinessException(String message) {
super(message);
}
}
这就完事了,emmm,乍一看好像没啥用啊?因为还没讲到web,现在我们就简单写一个Demo。
创建一个User类:
package entity;
public class User {
private String userName;
private String password;
public User(String userName, String password) {
this.userName = userName;
this.password = password;
}
//省略get,set
}
再来一个saveUser方法:
我们规定,如果用户名或者密码为空,是不允许返回的,一般我们会这样写代码:
public TuziHashMap saveUser(User user){
TuziHashMap result = new TuziHashMap();
result.put("code","00000");
result.put("msg","");
if(user.getUserName() == null){
result.put("code","11111");
result.put("msg","用户名不允许为空!");
}
if(user.getPassword() == null){
result.put("code","11111");
result.put("msg","密码不允许为空!");
}
return result;
}
问题是没问题,也确实很多项目就是这么干的,但是,真的不太方便。如果用自定义异常,我们就可以直接这样。
public TuziHashMap saveUser(User user){
TuziHashMap result = new TuziHashMap();
result.put("code","00000");
result.put("msg","");
if(user.getUserName() == null){
throw new BusinessException("用户名不允许为空!");
}
if(user.getPassword() == null){
throw new BusinessException("密码不允许为空!");
}
return result;
}
是不是一下子就清晰了很多呢?
标签:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2016-10-05 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第五节)