Java常见异常和错误

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java常见异常和错误

1、在某一路径下执行编译好的class文件出错。

异常如下:

E:\liwy>java Test98

Exception in thread "main" ng.NoClassDefFoundError: Test98

如果出现了以上错误提示,常见问题有如下两种:1 大小写写错了,2 路径不正确。

2、数组错误,访问不存在的数组,数组超出绑定,代码如下:

public class ArrayDemo

{

public static void main(String args[]){

int array[] = null; //声明数组

array = new int[3]; //为数组开辟空间,大小为3

for(int i=0;i

System.out.println("array["+i+"]="+i);

}

//访问数组没有开辟的下标,这时会报异常

System.out.println("array[3]="+array[3]);

}

}

异常如下:

array[0]=0

array[1]=1

array[2]=2

Exception in thread "main" ng.ArrayIndexOutOfBoundsException: 3

at ArrayDemo.main(ArrayDemo.java:11)

以上就是数组的索引超出绑定,就是表示数组越界。

3、某个类没有实例化,访问类属性时,出现空指针异常

class Person{

String name ; // 声明姓名属性

int age ; // 声明年龄属性

public void tell(){ // 取得信息

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

};

public class ClassDemo03{

public static void main(String args[]){

Person per = null ; // 声明对象

//per = new Person() ; // 实例化对象

= "张三" ; // 为姓名赋值

per.age = 30 ; // 为年龄赋值

per.tell() ; // 调用方法,打印信息}

};

异常如下:

Exception in thread "main" ng.NullPointerException at ClassDemo03.main(ClassDemo03.java:12)

4、错误的多态,出现异常

class A{ // 定义类A

public void fun1(){ // 定义fun1()方法

System.out.println("A --> public void fun1(){}") ;

}

public void fun2(){

this.fun1() ; // 调用fun1()方法

}

};

class B extends A{

public void fun1(){ // 此方法被子类覆写了

System.out.println("B --> public void fun1(){}") ;

}

public void fun3(){

System.out.println("B --> public void fun3(){}") ;

}

};

public class PolDemo03{

public static void main(String asrgs[]){

A a = new A() ; // 实例化了一个父类对象

B b = (B)a ; // 发生了向下转型关系

b.fun1() ;

b.fun2() ;

b.fun3() ;

}

};

异常如下:

Exception in thread "main" ng.ClassCastException: A

at PolDemo03.main(PolDemo03.java:20)

5、两个数字相除,被除数为0,出现异常

public class ExceptionDemo01{

public static void main(String args[]){

System.out.println("********** 计算开始***********") ;

int i = 10 ; // 定义整型变量

int j = 0 ; // 定义整型变量

int temp = i / j ; // 此处产生了异常

System.out.println("两个数字相除的结果:" + temp) ;

System.out.println("********** 计算结束***********") ;

}

};

异常如下:

********** 计算开始***********

Exception in thread "main" ng.ArithmeticException: / by zero

at ExceptionDemo01.main(ExceptionDemo01.java:6)

6、两个数字相除,输入两个参数,分别为字母a 和b,出现异常,数字格式化出问题public class ExceptionDemo04{

public static void main(String args[]){

System.out.println("********** 计算开始***********") ;

int i = 0 ; // 定义整型变量

int j = 0 ; // 定义整型变量

try{

String str1 = args[0] ; // 接收第一个参数

String str2 = args[1] ; // 接收第二个参数

i = Integer.parseInt(str1) ; // 将第一个参数由字符串变为整型

j = Integer.parseInt(str2) ; // 将第二个参数由字符串变为整型

int temp = i / j ; // 此处产生了异常

System.out.println("两个数字相除的结果:" + temp) ;

System.out.println("----------------------------") ;

}catch(ArithmeticException e){ // 捕获算术异常

System.out.println("出现异常了:" + e) ;

}

System.out.println("********** 计算结束***********") ;

}

};

异常如下:

相关文档
最新文档