Coding is not only a job,but a way of life.

整体结构:

java.lang.Throwable

java.lang.Error

java.lang.Exception

java.lang.RuntimeException

编译时异常为受检异常(checked)

1.异常:程序在执行过程中发生的不正常情况,程序员可以捕获处理

错误:不期望被用户捕获的异常,如计算机硬件的损坏,内存溢出。

2.编译时异常:.java源文件在执行.javac命令时,产生的异常

运行时异常:.class字节码文件在执行.java命令时,产生的异常

Java要求必须处理编译时异常,但是并不要求一定处理未被捕获的运行时异常。

3.异常的处理:通过面向对象的方式来进行异常的处理,把各种不同的异常进行分类,并提供了良好的接口。

在Java中,每个异常都是一个对象,它是Throwable类或其子类的实例。

可以通过try…catch()…的方式对异常进行处理,亦可以通过throws将异常对象抛出,抛给其调用者,由其调用者进行处理。

可以通过throw关键字主动的抛出一个异常。

4.throw:使用在方法内部,主动的抛出一个异常对象

throws:使用在方法的声明处,是异常处理的一种方式,将异常抛给其调用者,由调用者进行处理。

5.异常处理完成后,会在下一个垃圾回收过程中被回收掉。

6.注意finally语句块执行的时机,特别是当try和catch块中有return语句的时候。

7.自定义异常:class MyException extends Exception{private static final long serialVersionUID = 1650608766435423666L;public MyException(){}public MyException(String message){super(message);}}8.几种常见的编译时异常:

FileNotFoundException: 发生在:将一个文件读取到流中

ClassNotFoundException: 反序列化时,有可能找不到类

IOException:发生在流的读取和写入时

SQLException:暂时还没有遇到

ParseException:通过制定的日期格式SimpleDateFormat对象对一个字符串进行转换时。

NullPointException:空对象的引用调用方法时String str = "132";str = null;System.out.println(str.toString());ArrayIndexOutOfBoundsException:数组下标越界

int[] arr = new int[10];System.out.println(arr[10]);ClassCastException:向下转型时

Object obj = new Object();String string = (String) obj;System.out.println(string);ArithmeticException:算术异常,如除数为0

System.out.println(13/0);IllegalArgumentException:不合法的参数

NoSuchElementException:直接调用iterator.next()会抛出此异常 InputMismatchException:Scanner/sacnner.nextInt()键入时输入非数字字符会抛出

InvalidClassException:反序列化异常,没有指定序列号,修改了类文件

可能有所欠缺,,随时补充。

明天抽空补齐集合、泛型、IO部分的总结,今天太晚了。加油!

她是应该难过的往回走,还是蹲下来哭泣?

Coding is not only a job,but a way of life.

相关文章:

你感兴趣的文章:

标签云: