Java 异常(二) 自定义异常

微信扫一扫,分享到朋友圈

Java 异常(二) 自定义异常

Java 异常(二) 自定义异常

在开发中,为了适应业务的开发需求, 在 Java 中可以根据业务的异常情况自定义异常。

一、自定义异常

所有的自定义异常都必须是 Throwable 的子类,在自定义继承时可以继承于 Exception 或者它的子类。

二、自定义异常的分类

1、检查性异常类:自定义异常类继承于Exception。

2、运行时异常类:自定义异常类继承于 RuntimeException

三、Objects的非空判断

Objects由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或 null-tolerant(容忍空指针的),那么在它的源码中,对对象为null的值进行了抛出异常操作。Objects通过调用requireNonNull(T obj)方法查看调用对象是否为null。

public static <T> T requireNonNull(T obj) {
  if (obj == null)
    throw new NullPointerException();
  return obj;
}

从上面源码可以看出,如果传递对象为 null,requireNonNull 方法会抛出 NullPointerException 异常,否则返回该对象。

四、实例

1、自定义检查性异常类(MyException)

public class MyException extends Exception {
public MyException() { } // 无参构造
public MyException(String msg) {
super(msg); // msg : 异常提示信息
}
public MyException(Throwable throwable) {
super(throwable);// throwable 类型
}
}

2、自定义
运行时异常类(MyRuntimeException)

public class MyRuntimeException extends RuntimeException {
public MyRuntimeException() { } // 无参构造
public MyRuntimeException(String msg) {
super(msg); // msg : 异常提示信息
}
public MyRuntimeException(Throwable throwable) {
super(throwable);// throwable 类型
}
}

3、自定义异常的使用实例

public class ExceptionDemo {
public static void main(String[] args) throws Exception {
int i = demo(3);
System.out.println("i = " + i);
}
public static int demo(int index) throws  MyException{
int[] arr = {1,2,3};
if(index >= arr.length || index < 0)
throw new MyRuntimeException("您传递的索引错误,数组索引在0-2之间");
return arr[index];
}
}

4、Objects的非空判断实例

public static void main(String[] args) throws Exception {
Integer i = 10;
Integer i2 = Objects.requireNonNull(i);
System.out.println(i2);
}

基于X-Engine引擎的实时历史数据库解决方案揭秘

上一篇

“地摊升级”的蝴蝶效应

下一篇

你也可能喜欢

Java 异常(二) 自定义异常

长按储存图像,分享给朋友