java throw_Java之throw关键字的简单介绍

各位小伙伴们大家好,在之前的文章中小编介绍了异常的产生过程Java之异常产生过程解析,这次小编要介绍的是throw关键字,这个关键字可以在指定的方法中抛出指定的异常。

使用格式:throw new xxxException("异常产生的原因");

使用这个关键字,大家要注意以下几点:

throw关键字必须写在方法的内部。throw关键字后边new的对象必须是Exception或者Exception的子类对象。throw关键字抛出指定异常对象,我们就必须处理这个异常对象。

07ebae76dc487fc0f77ba39a8f7a8610.png

如果,throw关键字后边创建的是RuntimeException或者RuntimeException的子类对象,我们可以不处理,默认交给JVM处理(打印异常对象,中断程序)。

如果,throw关键字后边创建的是编译异常(写代码的时候报错),我们就必须处理这个异常,要么用throws,要么用try...catch。

代码如下:

public class Demo07Throw {

public static void main(String args[]){

String[] arr=null;

String e=getElement(arr,1);

System.out.println(e);

}

/*定义一个方法,获取数组指定索引处的元素

参数:

String[] arr

int index

首先要对传递过来的参数进行合法性效验,如果参数不合法,必须使用抛出异常的方式

,告知方法的调用者,传递的参数有问题*/

2aa28d66e96864e0ddd0caea89a313f5.png

public static String getElement(String[] arr, int index){

/*对传递过来的参数数组进行合法性效验

如果数组arr的值是null

那么我们就抛出空指针异常,告知方法调用者“传递的数组值是null”*/

if(arr==null){

throw new NullPointerException("传递的数组值是null");

}

String ele=arr[index];

return ele;

}

}

运行结果:Exception in thread "main" java.lang.NullPointerException: 传递的数组值是null。

NullPointerException是运行期异常。

对传递过来的参数index合法性也可以进行效验,代码如下:

63e023d129d09ee91c440968e1da029d.png

public class Demo08Throw {

public static void main(String args[]){

int[] arr=new int[]{1,2,3};

int e=getElement(arr,5);

System.out.println(e);

}

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

/*对传递过来的参数index合法性的效验,

如果超出了数组的范围,就告知方法的调用者“传递的索引超出了数组的使用范围”*/

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

throw new ArrayIndexOutOfBoundsException("传递的索引超出了数组的使用范围");

}

int ele=arr[index];

return ele;

}

}

运行结果:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 传递的索引超出了数组的使用范围(数组索引越界)。这也是运行期异常,不需要处理。

关于throw这关键字可以在指点的方法中抛出指定的异常,不过对于throw关键字来说,运行期的异常是不会处理的,只会抛出。小编就先说到这里,希望这篇文章可以帮到大家,也欢迎各位小伙伴补充和纠错。

图片来自网络,如有侵权,请联系作者删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值