java catch自定义异常_Java异常、try-catch、自定义异常

一、异常

1、异常的概念:

异常指的是不正常, 指的是程序中出现了某些问题。

在Java中,所有的问题都可以使用一个类来表示,这个类叫做Throwable。

Throwable是Java中所有异常和错误的父类。

Throwable

|-- Error: 表示错误。 指的是不可挽回的严重问题。 相当于人得了绝症。

|-- Exception:表示异常, 指的是可以挽回的轻微问题。 相当于人得了感冒,咳嗽。

2、异常产生的过程

public class Demo02Exception {

public static void main(String[] args) {

//定义一个数组

int[] arr = new int[2];

//调用getValue方法,获取数组中索引为10的元素

int value = getValue(arr);

System.out.println("value:" + value);

}

/*

定义方法,用来获取数组中某个索引上的元素

*/

public static int getValue(int[] arr) {

int value = arr[10]; //JVM会自动创建一个异常对象,然后自动抛出.

return value;

}

}

3、throw 关键字

如果想要手动的创建一个异常并且手动的抛出去,那么我们就可以使用throw关键字。

格式:

throw new 异常类名();

注意:

如果在某个方法内抛出异常,那么这个方法剩下的代码就都不会执行。

public class Demo03Throw {

public static void main(String[] args) {

//创建数组

int[] arr = new int[2];

int value = getValue(arr, 10);

System.out.println("value:" + value);

}

/*

定义方法,获取数组中指定索引的数据

*/

public static int getValue(int[] arr, int index) {

//在JVM自动抛出异常之前,我们对索引的取值范围进行检测, 如果索引的取值范围不合法,那么我们就手动抛出一个异常

//索引的取值范围是: 0 ~ arr.length-1

if(index < 0 || index > arr.length - 1) {

//如果索引的取值范围不合法,那么我们就手动创建一个ArrayIndexOutOfBoundsException,并且手动抛出。

//如果想要创建异常对象的使用给这个异常带上异常信息,那么可以在异常的构造方法位置传递异常信息

String msg = "索引的取值范围必须是0到" + (arr.length - 1) + ", 您给的索引为:" + index;

throw new ArrayIndexOutOfBoundsException(msg);

}

System.out.println("你好");

return arr[index];

}

}

4、Objects中的requireNonNull

通过null去调用任何的属性和方法都会引发空指针异常

public class Demo04Exception {

public static void main(String[] args) {

//定义一个Object

Object obj = null;

//调用toString方法之前判断,如果obj是null,那么手动抛出一个异常

/*

if (obj == null) {

throw new NullPointerException();

}

*/

Objects.requireNonNull(obj, "程序出现了空指针");

obj.toString();//当代码执行到

你可能感兴趣的:(java,catch自定义异常)