祭祖网站怎么做,wordpress 人流量 插件,电商网站建设代理商,域名续费哪里便宜Java核心类库篇5——异常
java.lang.Throwable类是Java语言中错误(Error)和异常(Exception)的超类其中Error类主要用于描述Java虚拟机无法解决的严重错误#xff0c;通常无法编码解决#xff0c;如#xff1a;JVM挂掉了 等其中Exception类主要用于描述因编程错误或偶然外在…Java核心类库篇5——异常
java.lang.Throwable类是Java语言中错误(Error)和异常(Exception)的超类其中Error类主要用于描述Java虚拟机无法解决的严重错误通常无法编码解决如JVM挂掉了 等其中Exception类主要用于描述因编程错误或偶然外在因素导致的轻微错误通常可以编码解决 如0作为除数等
1、Error
2、Exception
2.1、异常分类
2.1.1、Checked Exception
可检查的异常这是编码时非常常用的所有checked exception都是需要在代码中处理的。它们的发生是可以预测的正常的一种情况可以合理的处理。比如IOException或者一些自定义的异常。除了RuntimeException及其子类以外都是checked exception。
2.1.2、Unchecked Exception
RuntimeException及其子类都是unchecked exception。比如NPE空指针异常除数为0的算数异常ArithmeticException等等这种异常是运行时发生无法预先捕捉处理的。Error也是unchecked exception也是无法预先处理的。
2.2、异常的处理
2.2.1、try…catch
try
{// 程序代码
}catch(ExceptionName e1)
{//Catch 块
}finally
{//最后一定执行的代码
}当需要编写多个catch分支时切记小类型应该放在大类型的前面
2.2.2、抛出
在某些特殊情况下有些异常不能处理或者不便于处理时就可以将该异常转移给该方法的调用者 这种方法就叫异常的抛出
public void show() throws IOException{}子类重写的方法不能抛出更大的异常、不能抛出平级不一样的异常但可以抛出一样的异常、更小 的异常以及不抛出异常若父类中被重写的方法没有抛出异常时则子类中重写的方法只能进行异常的捕获处理若一个方法内部又以递进方式分别调用了好几个其它方法则建议这些方法内可以使用抛出 的方法处理到最后一层进行捕获方式处理
3、自定义异常
public class NameException extends Exception {public NameException() {super();}public NameException(String message) {super(message);}
}public class Person {private String name;public Person() {}public Person(String name) throws NameException {setName(name);}public String getName() {return name;}public void setName(String name) throws NameException {if (name.length()0||name.length()10){throw new NameException(姓名长度过长);}this.name name;}Overridepublic String toString() {return Person{ name name \ };}
}public class Test {public static void main(String[] args) throws NameException {Person person new Person(zhangsanlisiwangwu);System.out.println(person);}
}