Java面向对象_异常处理


    整理了一些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,是个非常便捷的方式。但在企业中合作开发项目时,尽量减少自定义异常,容易让人看不懂。
经验分享 程序员 微信小程序 职场和发展