自定义异常类

Posted 无敌小污龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义异常类相关的知识,希望对你有一定的参考价值。

一、可以自定义异常类吗?

  • SUN公司提供的jdk内置的异常类肯定是不够用的,在实际开发中,有很多的业务出现异常后,jdk都是没有和业务挂钩的,所以就要我们自定义异常类了。

二、怎么自定义异常类?

  1. 编写一个类继承Exception(发生概率高,编译时异常)或RuntimeException(发生概率低,运行时异常)
  2. 提供俩个构造方法,一个无参,一个带string参数的
// 业务逻辑异常
//定义一个登陆异常类RegisterException:
public class RegisterException extends Exception
/**
* 空参构造
*/
public RegisterException()


/**
*
* @param message 表示异常提示
*/
public RegisterException(String message)
super(message);


三、怎么使用自定义异常类

  1. 手动抛异常可以终止程序(throw)
  2. throw new 异常对象
//模拟登陆操作,使用数组模拟数据库中存储的数据,并提供当前注册账号是否存在方法用于判断。
public class Demo
// 模拟数据库中已存在账号
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 LoginException
for (String name : names)
if(name.equals(uname))//如果名字在这里面 就抛出登陆异常
throw new RegisterException("亲"+name+"已经被注册了!");


return true;


注:重写的方法不能比重写前的方法抛出更多的异常。(抛出异常的范围不能比之前的大)

以上是关于自定义异常类的主要内容,如果未能解决你的问题,请参考以下文章

课堂动手动脑验证以及自定义异常类实现对异常处理——java异常类

python 异常继承关系及自定义异常的实现

使用自定义消息捕获和处理 Jackson 异常

Java异常

springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如

从零开始的Java开发1-5-1 异常:分类异常处理try-catch-finally多重catchfinally与returnthrowsthrow关键字自定义异常类异常链