Java常见异常和错误
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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("********** 计算结束***********") ; } }; 异常如下: