棒棒的
前言
各位宝贝,本文主要介绍Java里的异常,希望能对各位起绵薄之力
提示:以下是本篇文章正文内容,下面案例可供参考
一、exception异常是什么?
异常即程序运行中的不正常的会导致程序终止的情况,如下图所示
可以看出,下标值越界了,但运行前没有报错
即为普通的数组下标值越界异常。
二、异常捕捉
1.引入代码
我们在运行程序时,总会遇到各种各样的问题,如用户不按提示输入值,这会导致异常,而程序员需要提前预判到这种异常的出现,并为此提前做出相应的处理。
也就是说,我们要把可能出现异常的代码尝试(try)一下,会不会出现异常,如果真的出现异常,我们要捉住(catch)它,并给出相应处理,这就是Java捕捉异常的机制try-catch语句
代码如下
import java.util.Scanner;
public class Arrayindex {
public static void main(String[] args) {
// TODO Auto-generated method stub
int index;
Scanner in=new Scanner(System.in);
int a[]=new int[10];
index=in.nextInt();
try {
//把有可能异常的代码放进try语句里
a[index]=10;//如果index的值超过了数组边界,就会产生越界异常
//注意哦,如果产生异常,就不会执行try语句里的剩下的内容了,而是转到catch里看一下满足什么异常
//如,如果index取10,就不会输出helloworld,而是输出数组越界异常
System.out.println("helloworld");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界异常");//发现异常,执行catch里的处理方法哦
}
System.out.println("仍然执行");//try-catch后面的语句并没有因为有异常而停止执行
//但若是没有try-catch,发生异常后程序立即停止,可以试试哦
}
}
注意哦,如果产生异常,就不会执行try语句里的剩下的内容了,而是转到catch里看一下满足什么异常,并执行catch里面的语句。
try语句后面可以跟多个catch语句,哪个异常与对应catch语句捕捉的一样,就转到相应catch语句里处理哦,代码如下
public class 异常2 {
public static void f()
{
int[] a=new int[10];
a[10]=10;
System.out.println("hello");//hello并不输出,可见第七行异常后
//f()函数剩下的内容就不执行了
}
public static void main(String[] args) {
try {
f();
} catch (NullPointerException e) {
System.out.println("空指针异常");
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界异常");//是什么异常被catch捕获,就执行该catch里的语句
}
System.out.println("仍然执行");
}
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了exception的一点点发现,明天继续吧,加油,今天的风真的好温柔,许是吹过那位爱人的心吧