自定义异常
Posted wurengen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义异常相关的知识,希望对你有一定的参考价值。
为什么需要自定义异常类
我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。
什么是自定义异常类:
- 在开发中根据自己业务的异常情况来定义异常类.
异常类如何定义:
- 自定义一个编译期异常: 自定义类 并继承于 java.lang.Exception 。
- 自定义一个运行时期的异常类:自定义类 并继承于 java.lang.RuntimeException 。
格式:
public class XXXException. extends Exception / RuntimeException{
添加一个空参数构造
添加一带异常信息的构造方法
}
自定义异常
package demo02; public class RegisterException extends Exception{ /** * 空参构造 */ public RegisterException() { } /** * @param message 表示异常提示 */ public RegisterException(String message) { super(message); } }
测试类
package demo02; public class Demo { // 模拟数据库中已存在账号 private static String[] names = {"bill", "hill", "jill"}; public static void main(String[] args) { //调用方法 try { // 可能出现异常的代码 checkUsername("jill"); 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; } }
执行结果
demo02.RegisterException: 亲jill已经被注册了! at demo02.Demo.checkUsername(Demo.java:22) at demo02.Demo.main(Demo.java:10)
以上是关于自定义异常的主要内容,如果未能解决你的问题,请参考以下文章