美文网首页
JAVA基础-异常处理

JAVA基础-异常处理

作者: 小伙纸2022 | 来源:发表于2022-11-27 10:29 被阅读0次

异常处理

异常处理三个步骤

  1. 捕获异常: try

    使用try块包裹业务代码,当业务代码中发生任何异常时,系统就会为此异常创建一个异常对象。创建异常对象之后,JVM会在try块之后寻找可以处理它的catch块,并将异常交给catch块处理。

  2. 异常处理:catch

    catch块中处理异常时,要捕获对应的异常或者异常的父类,异常类型不匹配时,编译会出现错误。

  3. 资源回收:finally

    如果业务代码需要关闭资源,要在finally块中进行。比如数据库连接、网络连接、磁盘文件等,则需要在这段业务代码执行完毕后关闭这项资源。将关闭资源的代码写在finally块内,可以满足这种需求,即无论是否发生异常,finally块内的代码总会被执行。

异常抛出:

当程序出现错误时,系统会自动抛出异常。除此以外,Java也允许程序主动抛出异常。当业务代码中,判断某项错误的条件成立时,可以使用throw关键字向外抛出异常。在这种情况下,如果当前方法不知道该如何处理这个异常,可以在方法签名上通过throws关键字声明抛出异常,则该异常将交给JVM处理。

异常跟踪栈:

程序运行时,经常会发生一系列方法调用,从而形成方法调用栈。异常机制会导致异常在这些方法之间传播,而异常传播的顺序与方法的调用相反。异常从发生异常的方法向外传播,首先传给该方法的调用者,再传给上层调用者,以此类推。最终会传到main方法,若依然没有得到处理,则JVM会终止程序,并打印异常跟踪栈的信息。

Throwable接口

Throwable是异常的顶层父类,代表所有非正常情况。它有两个直接子类:Error、Exception。

Throwable

Error是错误,一般指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图使用catch块来捕获Error对象。在定义方法时,也无须在其throws子句中声明该方法可能抛出Error及其任何子类。

Exception是异常,它被分为两大类,分别是Checked异常和Runtime异常。所有的RuntimeException类及其子类的实例被称为Runtime异常;不是RuntimeException类及其子类的异常实例则被称为Checked异常。Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误,无法通过编译。Runtime异常则更加灵活,Runtime异常无须显式声明抛出,如果程序需要捕获Runtime异常,也可以使用try...catch块来实现。

finally执行,不管try块中的代码是否出现异常,也不管哪一个catch块被执行,甚至在try块或catch块中执行了return语句,finally块总会被执行。

但是,如果在try块或catch块中使用 System.exit(1); 来退出虚拟机,则finally块将失去执行的机会。

相关文章

  • Java基础之异常

    Java基础之异常 目录 异常简单介绍 ThrowableErrorException 异常分类 如何处理异常异常...

  • Java基础系列-Exception异常处理

    原创文章,转载请标注出处:《Java基础系列-Exception异常处理》 一、概述 Java代码中的异常处理是非...

  • 在Alibaba广受喜爱的“Java突击宝典”简直太牛了

    0-1年:夯实基础 1.Java基础(Java异常分类及处理+Java反射+Java注解+Java内部类+Java...

  • Java基础之异常处理

    Java基础之异常处理 在Java程序中,异常分为编译异常以及运行时异常 编译异常:程序在编译期间就出现的异常,必...

  • Java基础-异常处理

    捕获异常 try-catch try捕获异常后,catch中要有针对问题的处理,否则就是隐藏异常 catch可以是...

  • Java基础——异常处理

    异常,说起来,就是一张图,5个关键字。 一张图, 5个关键字 try catch finally throw th...

  • 【Java基础】异常处理

    一、异常的概念 Java中的所有异常都可以用一个异常类来表示,不同类型的异常对应不同的子类异常(此处的异常包含er...

  • Java基础——异常处理

    异常:程序出现了不正常的情况 举例: 今天天气很好,班长出去旅游。骑着偷来的摩拜。去火炉山接近大自然,吸收新鲜空气...

  • Java 基础--异常处理

    https://blog.csdn.net/adminlxb89/article/details/82252004

  • Java后端知识体系

    基础重点(必须扎实) Java语言 语言基础 《Java核心技术》基础语法面向对象常用API异常处理集合IO多线程...

网友评论

      本文标题:JAVA基础-异常处理

      本文链接:https://www.haomeiwen.com/subject/odihfdtx.html