throw new ArrayIndexOutOfBoundsException(“该索引在数组中不存在,已超出范围”);接下来用程序具体演示下吧:
public class ThrowDemo {public static void main(String[] args) {//创建一个数组int[] arr = {2,4,52,2};//根据索引找对应的元素int index = 4;int element = getElement(arr, index);System.out.println(element);System.out.println("over");}public static int getElement(int[] arr,int index){//判断索引是否越界if(index<0 || index>arr.length-1){throw new ArrayIndexOutOfBoundsException("老弟,你的索引越界了,别这么干");}int element = arr[index];return element;}} 运行后输出结果为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 老弟,你的索引越界了,别这么干at com.it.test2.ThrowDemo.getElement(ThrowDemo.java:25)at com.it.test2.ThrowDemo.main(ThrowDemo.java:10) 可以看到我定义了索引为4,但是数组的长度只有4 。所以会报错 。
注意:所以如果产生了问题,我们就会throw将问题描述类即异常进行抛出,也就是将问题返回给该方法的调用者 。结果是
ArrayIndexOutOfBoundsException 的数组索引越界的问题 。
那么对于调用者来说,该怎么处理呢?一种是进行捕获处理,另一种就是继续讲问题声明出去,使用throws声明处理 。
3.4 声明异常throws
如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常 。例如汽车在运行时它可能会出现故障,汽车本身没办法处理这个故障,那就让开车的人来处理 。声明异常:将问题标识出来,报告给调用者 。如果方法内通过throw抛出了编译时异常,而没有捕获处理(稍后讲解该方式),那么必须通过throws进行声明,让调用者去处理 。关键字throws运用于方法声明之上,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(抛出异常).定义格式: throws语句用在方法定义时声明该方法要抛出的异常类型,如果抛出的是Exception异常类型,则该方法被声明为抛出所有的异常 。多个异常可使用逗号分割 。修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{ } 注意:当方法抛出异常列表的异常时,方法将不对这些类型及其子类类型的异常作处理,而抛向调用该方法的方法,由他去处理 。使用throws关键字将异常抛给调用者后,如果调用者不想处理该异常,可以继续向上抛出,但最终要有能够处理该异常的调用者 。比如汽车坏了,开车的人也不会修理,只能叫修车公司来修理了 。演示一下:一般来说,throws和 throw通常是成对出现的,例如:public class ThrowsDemo { public static void main(String[] args) throws FileNotFoundException { readFile(“a.txt”); }public class ThrowsDemo {
猜你喜欢
- 提莫西查拉梅为什么叫“甜茶”?
- “操”什么意思
- champion袖标有几种
- 清代小说<再生缘>陈端生原著 !谁能帮帮我,十分感谢
- 建国西路154号 问路,梅陇新村—>卢湾区业余大学
- “营改增”文化创意服务包括哪些?
- “ip电影”什么意思
- 黄渤将“佟丽娅”说成“佟娅丽”,是口误还是玩笑?
- “伯牙谓世再无知音,乃破琴绝弦,终身不复鼓。”的意思是什么
- “执念有尽,深爱无终。”这句话什么意思?
