Java基础–异常处理

Java中的错误会以对象方式呈现为 java.lang.Throwable的个种子类示例。通过捕获包装错误的对象,可以针对错误做一些对应的处理。本文主要记录其中比较容易记错的点。

1、异常继承架构

Java基础--异常处理
  1. 错误对象都继承自 java.lang.Throwable类,它有两个子类: java.lang.Errorjava.lang.Exception
  2. Error与其子类实例代表严重系统错误。
  3. Exception或其子类实例代表程序设计本身的错误,所以错误处理称为异常处理(Exception Handling)。
  4. 受检异常(Checked Exception)Exception或其子对象,但非属于RuntimeException或其子对象,编译器会进行检查。
  5. 非受检异常(Unchecked Exception)属于RuntimeException衍生出来的类示例,例如空指针。

2、异常与资源管理

  1. try后面可以不跟 catch,也可以不用撰写 finally语句,例如JDK7中 Try-with-resources语法
    public static String readFile(String name) throws FileNotFoundException {
        StringBuilder text = new StringBuilder();
        try(Scanner console = new Scanner(new FileInputStream(name))){
            while (console.hasNext()){
                text.append(console.nextLine())
                        .append('\n');
            }
        }
        return text.toString();
 }
  1. finally执行顺序:如果先return 了,而且也有finally块,那么finally区块会先执行完再将值返回。
  2. java.lang.AutoCloseable实现该接口可以尝试关闭资源,但也仅仅是帮助关闭资源,如果有需要处理的异常还是需要catch处理;尝试关闭资源语法中可以同时关闭两个以上的对象资源,中间以分号隔开,且try括号中,越后面撰写的对象资源会越早被关闭。

3、定义自己的异常类

可以继承Exception或者RuntimeException

public class MyException extends Exception {
    private final static long serialVersionUID = 1L;

    // 提供无参数的构造方法
    public MyException() {
    }

    // 提供一个有参数的构造方法,可自动生成
    public MyException(String message) {
        // 把参数传递给Throwable的带String参数的构造方法
        super(message);
    }
}

Original: https://www.cnblogs.com/xieshuang/p/11111623.html
Author: 河岸飞流
Title: Java基础–异常处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571656/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 如何使用原生的Ribbon

    什么是Ribbon 之前分析了如何使用原生的Feign,今天我们来研究 Netflix 团队开发的另外一个类库–Ribbon。Ribbon 和 Feign 有很多相似的…

    Java 2023年6月14日
    071
  • File与IO流基类

    在变量、数组、对象和集合中存储的数据是暂时存在的,一旦程序结束它们就会丢失. 为了能够永久地保存这些数据,需要将其保存到磁盘文件中。Java 的 I/O流技术可以将数据保存到文本文…

    Java 2023年6月8日
    065
  • Spring 内部机制 Spring AOP

    Original: https://www.cnblogs.com/WCFGROUP/p/11920857.htmlAuthor: 暖风的风Title: Spring 内部机制 S…

    Java 2023年5月30日
    075
  • 2022保研经历-有删减

    2022 保研经历 我也知道大家仅仅是想看题目而已。 恕我直言,那些 排版混乱 ,看起来讲了很多,实际上既没有提供面试题目,也没有提供备考经验,反而只感动自己、像记流水账、对别人没…

    Java 2023年6月7日
    060
  • 深入理解java泛型

    什么是Java泛型 泛型的使用 泛型类 泛型接口 泛型方法 泛型的底层实现机制 ArrayList源码解析 什么是泛型擦除 泛型的边界 ?:无界通配符 extends 上边界通配符…

    Java 2023年6月15日
    076
  • Java多线程基础:Java与线程

    Java多线程基础:Java与线程 线程的实现 使用内核线程实现 内核线程(Kernel-Level Thread,KLT)就是直接 由操作系统内核支持的线程。内核通过操纵调度器对…

    Java 2023年5月29日
    062
  • SpringBoot 2.0整合阿里云OSS,实现动静分离架构

    前言 相信大部分开发者对下面这张架构图并不陌生吧,现在很多网站/应用都采用了动静分离的架构进行部署。博主的博客也不例外,主机采用的是阿里云的 ECS,使用 CDN 做静态内容分发,…

    Java 2023年5月30日
    061
  • Java基础(一)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    079
  • 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)

    v4.1.2版更新震撼发布,功能更加强大,速度过来围观,此次版本更新如下: 1、随着程序的功能越来越强大,原来的定位和设计已经无法满足更高的要求,所以决定对本程序更名,更名为Tab…

    Java 2023年6月9日
    075
  • Spring Security OAuth 2.x的刷新token接口/oauth/token自定义修改

    参考资料: Spring Security OAuth 2.x的刷新token方法自定义修改 使用maven依赖: 需求: 旧项目的其中一个前端页面会频繁调用token刷新方法。 …

    Java 2023年5月30日
    062
  • Linux命令拾遗-我的进程消失了

    原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 程序员但凡工作时间久一点,总会遇到一些诡异的事情,比如每当你下班时,服务就挂,然后业务同学就各…

    Java 2023年6月7日
    093
  • Java I/O 流之对象流中的序列化和反序列化

    一、概念 当两个进程远程通信时,彼此可以发送各种类型的数据。 无论是何种类型的数据,都会以二进制序列的形式在网络上传送。比如,我们可以通过 http 协议发送字符串信息;我们也可以…

    Java 2023年6月13日
    074
  • HIT软构博客4–lab1记录与总结

    ​ 完成一个实验或小的项目使用java在需要的时候去搜索和看书比直接看很厚的书有意义一些,体验更加良好。自己对java的掌握不是很好,大一结束的夏天认真学习了java看了核心技术的…

    Java 2023年6月5日
    096
  • 幻灯片:Why Java Sucks and C# Rocks

    昨天在5173与博客园联合举办的技术交流活动中进行了演讲,现在幻灯片终于可以放出了。当然,光看幻灯片本身的效果不大,在演讲过程中我进行了非常多的代码演示和说明,幻灯片本身只能算是一…

    Java 2023年5月29日
    077
  • 插入排序

    插入排序 原理 第一步,保证([0,0])区间元素有序,因为只有一个元素,所以不需要过多考虑 第二步,保证([0,1])区间元素有序,如果第二个元素与前一个元素逆序,则交换位置 第…

    Java 2023年6月9日
    087
  • springboot中@Configuration的用法

    一、背景在spring框架中,会有大量 的xml配置文件,或者需要做很多繁琐的配置。 从spring3开始,spring就支持了两种bean的配置方式, 一种是基于xml文件方式、…

    Java 2023年5月30日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球