java笔记4异常

异常(Exception):是在程序运行过程中所发生的破坏了正常的指令流程的事件。

Throwable 具有两个子类,它们是Error:称为错误,由Java虚拟机生成并抛出,包括 动态链接失败、虚拟机错误、装载错误等,程序对其不做处理;Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或捕获;

RuntimeException:Java程序运行时常常遇到的各种异常,如被0除、数组下标越 界等。其产生比较频繁,一般是由于人为原因产生,由系统自动检测并将它们交给缺省异常处理程序;需要从源代码级别严格控制此类异常的产生。

根据编译器是否对异常做检查划分:

  1. 非检查型异常:Unchecked Exception 包括Error及其子类和RuntimeException及其子类,编译器不检查方法是否处理或指定向上抛出的异常;不处理编译能正确通过;
  2. 检查型异常:Checked Exception 包括Exception及其除了RuntimeException以外的所有子类;编译器必须检查一个方法是否处理或指定向上抛出的异常;如果该方法没有处理或指定向上抛出可能产生的此类异常,编译不会通过

catch语句:catch ( SomeException  e )

声明的异常对象封装了异常事件发生的信息 ,在catch语句块中可以使用这个对象的一些方法获取这些信息。

  1. public String getMessage() 方法 返回一个详细描述异常的字符串,用来得到有关异常事件的信息;
  2. public void printStackTrace() 方法 用来打印输出异常事件发生时执行堆栈的内容;
  3. public String toString() 方法 返回一个简洁描述该异常的字符串; 

一段代码可能会生成多个异常,当引发异常时,会按顺序来查看每个 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 中

你可能感兴趣的:(java,exception,虚拟机,String,vector,编译器)