EXCEPTIONS

1.找不到符号;程序包不存在

1 //此类在控制台打印HelloWorld
2 class  HelloWorld
3 {
4     public static void main(string[] args) 
5     {
6         system.out.println("Hello World!");
7     }
8 }

 

原因:string和system首字母小写

解决方法:string和system首字母大写

2.NoClassDefFoundError

 1 //[F:JavaTrainingElementaryClass20170402Day01AssignmentsCodeDay01Student.java] 

原因:运行.class文件时文件名没有和编译java源文件后生成的类文件的文件名一样

解决方法:修改类文件名和编译后的文件名一致

3.可能尚未初始化变量var

1 //[F:JavaTrainingElementaryClass20170403Day02AssignmentsCodeDay02VariableUsageErrorDemo.java]
2 /*
3     错误: 可能尚未初始化变量var
4     int var;
5     System.out.println("var=" + var);
6 */

原因:未给变量初始化值

4.找不到符号

1 //[F:JavaTrainingElementaryClass20170403Day02AssignmentsCodeDay02VariableUsageErrorDemo.java]
2 {
3         int i = 5;    //定义变量i并赋初始值5
4 }
5         System.out.println("i=" + i);//打印i

原因:打印引用的变量i超出了其存在的域(int i = 5作用范围只存在{}内)

解决方法:将System.out.println("i=" + i);放入{}内或将int i = 5;放入{}外

5.int类型数据可能损失精度

1 /**
2 //[F:JavaTrainingElementaryClass20170403Day02AssignmentsCodeDay02 IntDemoOfEzraOholiab.java]
3 {
4     byt = 200;//将200赋给byt
5     System.out.println("byt=" + byt);//打印byt
6 }
7 */

原因:200默认为int型,占4个字节,而byte型占1个字节,将占4个字节的200放入占1个字节的内存空间中会损失精度

解决方法:将右侧的初始值调整到byte类型的范围内

6.过大的整数

1 //[F:JavaTrainingElementaryClass20170403Day02AssignmentsCodeDay02 IntDemoOfEzraOholiab.java]
2  //定义一个long型变量lo并赋初值为500亿
3 long lo = 50000000000;
4 //打印lo
5 System.out.println("lo=" + lo);

原因:出现整数时系统默认为int类型,其范围为-20亿多~20亿多,500亿超出了其范围

解决办法:在500亿后加’L’

7.double类型数据可能损失精度

1 //[F:JavaTrainingElementaryClass20170403Day02AssignmentsCodeDay02DoubleDemoOfEzraOholiab.java]
2 //定义一个float型变量f并赋初始值为5.03
3 float f = 5.03;
4 //打印f
5 System.out.println("f=" + f);

原因:double是默认的小数类型,其占用8个字节,而float占用4个字节,double类型小数赋值给float类型小数时会损失精度。

8.5种常见运行时异常
        ①java.lang.NullPointerException
        ②java.lang.ArrayIndexOutOfBoundsException
        ③java.lang.InputMismatchException
        ④java.lang.ArithmeticException
        ⑤java.io.FileNotFoundException

原文地址:https://www.cnblogs.com/EzraOholiabXue/p/EXCEPTIONS.html