- 整理了一些Java面向对象的笔记,记录在这里 @Zeii
异常
- 异常可以简单理解为错误
- 异常有编译时异常和运行时异常,编译时异常在编译前手动修正即可,异常的处理主要是指运行时异常。
- 程序在运行时出现异常,会由对应的异常类生成一个异常对象,并抛出,默认由JVM捕获,并将错误信息打印,同时程序会被中断。
- 一般程序在运行时,不希望因为异常而被中断,就需要在JVM捕获异常之前将其拦截,并处理。
- 异常的类都继承自Trowable类,分为很多的Exception类,其中运行时异常的类为RuntimeException。
异常处理
try…catch
- 语法
try{
// 尝试执行的代码
}catch(Exception e){ // 创建异常的对象 e
// 处理异常的代码
}finally{
// 无论是否有异常,都会执行的代码
}
throws和throw
- 语法
public void calculate() throws Exception{ }
throws表示如果方法体中出现异常,则向上抛出这个异常,谁调用这个方法,由谁来处理这个异常。
throw new Exception(“出现异常”);
throw是主动抛出异常,是具体的动作。
- 如果方法中有throw语句,那么方法在声明时必须要加上throws Exception,告诉外界这个方法可能会抛出异常。
- throws和throw一般是在本方法内无法解决异常,需要上一级处理时用到。自己的异常尽可能自己处理,不要随意抛出异常。
自定义异常
在设计程序时,有些异常是与程序场景有关的,不能直接抛出一个系统自带的异常,需要更具体,这时可以自定义异常。
- 自定义异常,就是创建一个异常的类,这个类必须继承Exception或RuntimeException.
public class GenderException extends Exception{
public GenderException(msg){
super(msg); // 调用父类Exception的构造方法,并传入msg
}
}
使用时
throw new GenderException("性别有误");
- 自定义异常继承自Exception,是个非常便捷的方式。但在企业中合作开发项目时,尽量减少自定义异常,容易让人看不懂。