Java基础 第三节 第二十课
【摘要】
自定义异常
概述为什么需要自定义异常类什么是自定义异常类异常类如何定义
自定义异常的练习
概述
为什么需要自定义异常类
我们说了 Java 中不同的异常类, 分别表示着某一种具体的异...
自定义异常
概述
为什么需要自定义异常类
我们说了 Java 中不同的异常类, 分别表示着某一种具体的异常情况. 那么在开发中总是有些异常情况是 SUN 没有定义好的, 此时我们根据自己业务的异常情况来定义异常类. 例如年龄负数问题, 考试成绩负数问题等等.
什么是自定义异常类
在开发中根据自己业务的异常情况来定义异常类.
Ex:
自定义一个业务逻辑异常: RegisterException. 一个注册异常类.
异常类如何定义
- 自定义一个编译期异常: 自定义类并继承于
java.lang.Exception
- 自定义一个运行时期的异常类: 自定义类并继承于
java.lang.RuntimeException
自定义异常的练习
要求: 我们模拟注册操作, 如果用户名已存在, 则抛出异常并提示: 亲, 该用户名已经注册.
首先定义一个登陆异常 RegisterException:
// 业务逻辑异常
public class RegisterException extends Exception{
// 空参构造
public RegisterException() {
}
/**
* 构造
* @param message 表示异常提示
*/
public RegisterException(String message) {
super(message);
}
}
模拟登陆操作, 使用数组模拟数据库中存储的数据, 并提供当前注册账号存在方法用于判断.
public class Test46 {
// 模拟数据库中已存在账号
private static String[] names = {"bill","hill","jill"};
public static void main(String[] args) {
// 调用方法
try{
// 可能出现异常的代码
checkUsername("nill");
System.out.println("注册成功"); // 如果没有异常就是注册成功
}catch(RegisterException e) {
// 处理异常
e.printStackTrace();
}
}
// 判断当前注册账号是否存在
// 因为是编译期异常, 又想调用者去处理所以声明该异常
public static boolean checkUsername(String uname) throws RegisterException{
for (String name : names) {
if(name.equals(uname)){ // 如果名字在这里面 就抛出登陆异常
throw new RegisterException("亲" + name + "已经被注册了!");
}
}
return true;
}
}
文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。
原文链接:iamarookie.blog.csdn.net/article/details/110676329
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)