1、当你在一个路径下实行编译好的class文件堕落。
非常如下:
E:\liwyjavaTest98
exceptioninthread"main"java.lang.noClassdeffounderror:Test98
要是出现了以上错误提示,常见题目有以下两种:
1.巨细字母写错了
2.路径不精确。
Java常见非常和错误
2、数组错误,就会访问已经不存在的数组,数组超出绑定,代码如下:
publicclassArraydemo
{
publicstaticvoidmain(Stringargs[]){
intarray[]=null;//声明数组
array=newint[3];//为数组开辟空间,巨细为3
for(inti=0;iarray.length;i++){
System.out.println("array["+i+"]="+i);
}
//访问数组没有开辟的下标,这时会报非常
System.out.println("array[3]="+array[3]);
}
}
非常如下:
array[0]=0
array[1]=1
array[2]=2
Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:3
atArrayDemo.main(ArrayDemo.java:11)
以上就是数组的索引超出绑定,就是表现数组越界。
3、某个类没有实例化,访问类属性时,出现空指针非常
classPerson{
Stringname;//声明姓名属性
intage;//声来岁龄属性
publicvoidtell(){//取得信息
System.out.println("姓名:"+name+",年龄:"+age);
}
};
publicclassClassDemo03{
publicstaticvoidmain(Stringargs[]){
Personper=null;//声明对象
//per=newPerson();//实例化对象
per.name="张三";//为姓名赋值
per.age=30;//为年龄赋值
per.tell();//调用方法,打印信息
}
};
非常如下:
Exceptioninthread"main"java.lang.NullPointerException
atClassDemo03.main(ClassDemo03.java:12)
4、错误的多态,出现非常
classA{//界说类A
publicvoidfun1(){//界说fun1()方法
System.out.println("A--publicvoidfun1(){}");
}
publicvoidfun2(){
this.fun1();//调用fun1()方法
}
};
classBextendsA{
publicvoidfun1(){//此方法被子类覆写了
System.out.println("B--publicvoidfun1(){}");
}
publicvoidfun3(){
System.out.println("B--publicvoidfun3(){}");
}
};
publicclassPolDemo03{
publicstaticvoidmain(Stringasrgs[]){
Aa=newA();//实例化了一个父类对象
Bb=(B)a;//发生了向下转型关系
b.fun1();
b.fun2();
b.fun3();
}
};
非常如下:
Exceptioninthread"main"java.lang.ClassCastException:A
atPolDemo03.main(PolDemo03.java:20)
5、两个数字相除,被除数为0,出现非常
publicclassExceptionDemo01{
publicstaticvoidmain(Stringargs[]){
System.out.println("**********盘算开始***********");
inti=10;//界说整型变量
intj=0;//界说整型变量
inttemp=i/j;//此处产生了非常
System.out.println("两个数字相除的结果:"+temp);
System.out.println("**********盘算竣事***********");
}
};
非常如下:
**********盘算开始***********
Exceptioninthread"main"java.lang.ArithmeticException:/byzero
atExceptionDemo01.main(ExceptionDemo01.java:6)
6、两个数字相除,输入两个参数,分别为字母a和b,出现非常,数字格式化出题目
publicclassExceptionDemo04{
publicstaticvoidwww.gzlij.commain(Stringargs[]){
System.out.println("**********盘算开始***********");
inti=0;//界说整型变量
intj=0;//界说整型变量
try{
Stringstr1=args[0];//吸取第一个参数
Stringstr2=args[1];//吸取第二个参数
i=Integer.parseInt(str1);//将第一个参数由字符串变为整型
j=Integer.parseInt(str2);//将第二个参数由字符串变为整型
inttemp=i/j;//此处产生了非常
System.out.println("两个数字相除的结果:"+temp);
System.out.println("----------------------------");
}catch(ArithmeticExceptione){//捕获算术非常
System.out.println("出现非常了:"+e);
}
System.out.println("**********盘算竣事***********");
}
};
非常如下:
**********盘算开始***********
Exceptioninthread"main"java.lang.NumberFormatException:Forinputstring:"a"
atjava.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
atjava.lang.Integer.parseInt(Integer.java:447)
atjava.lang.Integer.parseInt(Integer.java:497)
atExceptionDemo04.main(ExceptionDemo04.jav
7、两个数字相除,输入两个参数,假如两个参数什么也不输入,出现非常,数组超出绑定。
非常如下:
**********盘算开始***********
Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:0
atExceptionDemo04.main(ExceptionDemo04.java:7)
7、assert断言的利用,当断言结果不对出现非常。
publicclassTest
{
publicstaticvoidmain(Stringargs[]){
inti[]={1,2,3};//数组长度为3
asserti.length==0;//此处断言数组长度为0
}
}
非常如下:
D:\d代码java-eaTest
Exceptioninthread"main"java.lang.Asserti
atTest.main(Test.java:5)
l断言必要在运行时必要加上“-ea”,如上java–ea类名。
我要评论