- 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。
- Java程序在执行过程中所发生的异常(运行时一切不正常情况)事件可分为两类:
- Error : Java虚拟机无法解决的严重问题。如:JVM系统内部错误,资源耗尽等严重情况。一般不编写针对性的代码进行处理。
- Except ion: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:
- 访问数组下标越界
- 试图读取不存在的文件
- 网络连接中断
int []a=new int[5];
// a[5]=10;
// System.out.println("abs");
//其它因编程错误或偶然的外在因素导致的一般性问题,可 以使用针对性的代码进行处理。
try{
int []a1=new int[5];//若出现异常,可以继续执行下面的程序
for (int i = 0; i <=a1.length; i++) {
Random random=new Random();
int c=random.nextInt(39);//随机数组给定数字
a1[i]=c;//赋值,下标越界
System.out.println(Arrays.toString(a1));
}
a1[5]=10;//访问数组下标越界
}catch(Exception e){
System.out.println("运行出问题了");
int a=10;
// int b=0;
// int c=a/b;//算数异常
// System.out.println(c);//Exception in thread "main" java.lang.ArithmeticException: / by zero
// String a=null;//空指针异常
// a.length();//Exception in thread "main" java.lang.NullPointerException
// Object a="1a2";//类型转换异常
// Integer c=(Integer)a;//on in thread "main" java.lang.ClassCastException
// new Integer("1a2");//数字格式化异常//Exception in thread "main" java.lang.NumberFormatException: For input string: "1a2"
try {
int a = 10;
int b = 0;
int c = a / b;
System.out.println(c);
} catch (ArithmeticException a) {//优先选择对应的异常类型
a.printStackTrace();//可以调出异常的类型
System.out.println("服务器过忙,请稍后1");
}catch (Exception e) {
System.out.println("服务器过忙,请稍后");
public static void main(String[] args) {
// try{
// int a = 10;
// int b = 0;
// int c = a / b;
// new Integer("1a2");
// }catch(Exception e){
// e.printStackTrace();
// System.out.println("服务器较忙,请稍后再试");
// }finally {
// System.out.println("大飞侠");
// }
// System.out.println("小猪猪");
// }
ExceptionDemo3.demo1();
ExceptionDemo3.demo2();
}
public static void demo1() {
try {
int a = 10;
int b = 0;
int c = a / b;
new Integer("1a2");
} finally {
System.out.println("大飞侠");
}
System.out.println("小猪猪");
}
public static int demo2() {
try {
int a = 10;
int b = 0;
int c = a / b;
new Integer("1a2");
return 0;
} catch(Exception e){
e.printStackTrace();
return -1;
}
finally {
System.out.println("123");
}
}