运行时异常和非运行时异常
Throwable:有两个重要的子类:Exception(异常)和Error(错误 )
1.error 表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困 难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况 ;
2. exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。
throws,throw,try,catch,finally分别代表什么含义?
Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在 Java 中,每个异常都是一个对象,它是 Throwable 类或 其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有 异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java 的异常 处理是通过 5 个关键词来实现的:try、catch、throw、throws 和 finally。一 般情况下是用 try 来执行一段程序,如果出现异常,系统会抛出(throws)一个 异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺 省处理器来处理;
try 用来指定一块预防所有“异常”的程序;
catch 子句紧跟在 try 块后面,用来指定你想要捕捉的“异常”的类型;
throw 语句用来明确地抛出一个“异常”;
throws 用来声明一个异常;
Finally 为确保一段代码不管发生什么“异常”都被执行一段代码; 可以在一个成员函数调用的外面写一个 try 语句,在这个成员函数内部写另一个 try 语句保护其他代码。
运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的 通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须 声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行 时异常。
运行时异常(RunTimeException)举例
- NullPointException 空指针异常
- ArithmeticException 除数为0(数学异常)
- ClassCastException 类型转换异常
- ArrayIndexOutOfBoundsException 数组下标越界异常
- NumberFormatException 数字格式化异常
- EOFException
非运行时异常举例
- IOException
- SQLException
- FileNotFoundException