随笔 - 79,  文章 - 0,  评论 - 1,  阅读 - 45668

 

1. 异常简介

  Java异常时Java提供的识别响应错误的机制,可以使程序中异常处理代码和正常业务代码分离,提高程序的健壮性。

复制代码
public class ExceptionTest01{
    public static void main(String[] args){
        try{
            int i = 10 / 0;
            System.out.println("i = " + i);
        }catch(ArithmeticException e){
            e.printStackTrace();
        }
    }
}
复制代码
运行结果:
java.lang.ArithmeticException: / by zero
        at ExceptionTest01.main(ExceptionTest01.java:5)

  Java中可抛出的异常(Throwable)分为三类:编译时异常,运行时异常和错误

  Throwable是Java中所有异常和错误的父类。

  (1)编译时异常:Exception类本身,和“运行时异常”之外的其他子类

    编译时异常要求在编译阶段进行处理,不处理则编译不通过。

  (2)运行时异常:RuntimeException及其子类

    在编译阶段可处理可以不处理,可以通过throws声明抛出,也可以try-catch捕获异常

  (3)错误

    当资源不足,约束失败,或是其他程序无法继续运行的条件发生时,就会产生错误。

    所有异常都是发生在运行阶段的,发生异常会new对象,在编译阶段不会创建对象。

 

2. 异常方法的覆盖

  子类中不能比父类抛出更广泛的异常

复制代码
public class ExceptionTest02{
    public static void main(){
        
    }
}

class Animal{
    public void doSome(){
        System.out.println("animal do something");
    }
}

class Cats extends Animal{
    /*  可以不抛出异常
    public void doSome(){
        System.out.println("animal do something");
    }
    */
    
    public void doSome() throws FileNotFoundException{
        System.out.println("animal do something");  //错误: Cats中的doSome()无法覆盖Animal中的doSome()
    }
}
复制代码

  

3. 自定义异常

  a. 自定义异常类继承Exception;

  b. 重写无参数和有参数构造方法;

public class MyException extends Exception{
    public MyException(){}
    
    public MyException(String s){super(s);}
}

 

posted on   homle  阅读(166)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示