异常(Exception):是在程序运行过程中所发生的破坏了正常的指令流程的事件。
Throwable 具有两个子类,它们是Error:称为错误,由Java虚拟机生成并抛出,包括 动态链接失败、虚拟机错误、装载错误等,程序对其不做处理;Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或捕获;
RuntimeException:Java程序运行时常常遇到的各种异常,如被0除、数组下标越 界等。其产生比较频繁,一般是由于人为原因产生,由系统自动检测并将它们交给缺省异常处理程序;需要从源代码级别严格控制此类异常的产生。
根据编译器是否对异常做检查划分:
catch语句:catch ( SomeException e )
声明的异常对象封装了异常事件发生的信息 ,在catch语句块中可以使用这个对象的一些方法获取这些信息。
一段代码可能会生成多个异常,当引发异常时,会按顺序来查看每个 catch 语句,并执行第一个类型与异常类型匹配的语句。执行其中的一条 catch 语句之后,其他的 catch 语句将被忽略;使用多重 catch 语句时,异常子类一定要位于异常父类之前
finally子句不能抛出新的异常,否则会导致原始异常丢失;
finally子句中不要有与try语句中重复的return操作,否则会屏蔽原始的返回值
throw语句指定在程序中显示抛出异常:默认系统自动抛出;自定义异常需要使用throw抛出;throw ,一般情况下为Exception或其子类对象;使用throw语句要结合throws
throws指定方法抛出异常:将当前不能或不需要处理的异常,向上层的方法调用者抛出
自定义异常:用来处理程序中特定的逻辑运行错误;
自定义异常的使用:Java API提供的内置异常不一定总能捕获程序中发生的所有错误。有时会需要创建用户自定义异常;
自定义异常需要继承Exception 及其子类:习惯上,会为每一个自定义异常类提供一个默认的无参构造方法,以及一个包含详细信息的构造方法;
使用:在方法适当的位置,生成自定义异常的实例,并用throw语句抛出;
在方法的声明部分用throws语句,声明该方法可能抛出的异常;
要手动引发异常,使用关键字 throw。任何被抛到方法外部的异常都必须用 throws 子句指定;注意:重写方法要抛出与原方法一致的异常或不抛出异常,不能抛出比原方法更多的异常;
数组有length属性string有length()方法
原始数据类型不能添加到 Vector 中