返回顶部
首页 > 资讯 > 后端开发 > Python >Java异常Exception详细讲解
  • 629
分享到

Java异常Exception详细讲解

2024-04-02 19:04:59 629人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1、异常中最大的父类Throwable2、try-catch-finally三条语句注意的问题3、final-finally-finalize的各作用4、throws关键字5、t

1、异常中最大的父类Throwable

Throwable可以分为两种:

Error

Exception: 

  • 运行时异常(非受检异常)
  • 非运行时异常(受检异常)

Error错误:Error是程序无法处理的错误,它是由JVM产生抛出的,比如OutOfMemoryError,ThreadDeath等,这些异常发生时,jvm会选择终止程序执行

Exception:是程序本身可以处理的异常

  • 运行时异常:都是RuntimeException类及子类,如NullPointerException(空指针),IndexOutOfBoundException(数组越界)等,这些异常可以选择捕获处理,或者可以不处理
  • 非运行时异常:(受检异常)时除了RuntimeException以外的异常,类型上属于Exception类,从程序语法角度这些异常必须要进行处理,如果不处理,程序不饿能通过编译,如IOException,SQIException

2、try-catch-finally三条语句注意的问题

  • try,catch,finally均不能单独使用,三者可以组合使用,组合方式:try…catch, try…catch…finally, try…finally ,其中catch可以有一个或者多个,finally语句最多只能有一个
  • 三个语句块中变量的作用域为代码块,分别独立的不能互相访问,如果要在三块中都可以访问,就把变量定义到这些块外边
  • 如果存在多个catch块,最多只会匹配一个异常类且执行该catch块代码,而不会在执行其他catch块,且匹配顺序是从上到下,最多只会匹配一个异常类,也就是说也可以一个异常类都不执行
  • catch捕获的异常类不能重复,且先捕获子类异常再捕获父类异常
  • 无论try中语句有没有问题,finally中的语句一定执行,finally为程序提供统一的出口,保证程序状态的统一管理,通常情况下finally中进行资源的关闭清除工作
package com.exception;
public class Test {
    public static void main(String[] args) {
        int[] a=new int[5];
        try {
            for (int i = 0; i <10 ; i++) {
                a[i]=i;
            }
            //空指针
        }catch (ArrayIndexOutOfBoundsException e){
            //弹出出错的地方
            System.out.println("1");
            e.printStackTrace();
            //访问异常,数组越界
        }catch (NullPointerException e){
            System.out.println("2");
            e.printStackTrace();
            //无论有错与否,finally最终执行
        } finally {
            System.out.println("都能执行");
        }
        System.out.println("---------------");
    }
}

3、final-finally-finalize的各作用

  • final:用于定义常量的关键字
  • finally:异常中总能执行的代码块
  • finalize() :垃圾回收,该方法是系统调用,不用程序员手动调用

4、throws关键字

  • 定义一个方法的时候可以使用throws关键字声明,表示该方法时不处理该异常,而是交给方法调用者处理该异常
  • 在定义方法时,throws关键字可以程序员自主选择使用,如果使用了,那么说明该方法时不处理该异常的
  • 如果主方(main)也使用throws关键字,那么就意味着主方法也不处理异常,最后留给jvm处理,jvm处理异常就是终止程序
  • throws抛出一个子类异常,调用该方法的调用者可以不必须处理该异常

注意:

throw关键字:是可以自定义异常,也就是抛异常,抛出的时候是一个异常类的对象

5、throws和throw的区别

throws:

  • 用在方法声明之后,跟着的是异常类名
  • 可以跟多个异常类,用逗号隔开
  • 表示抛出异常,有该方法的调用者处理
  • throws表示出现异常的一种可能性,并不一定会发生异常

throw:

  • 用在方法体内,跟着的是异常对象
  • 只能抛出一个异常对象
  • 表示抛出异常,有方法体内语句处理
  • throw抛异常是一定会发生,并不是一种可能

代码表示:

package com.test;
public class Throw {
    //throws Exception 代表该方法出现异常时不做处理
    public void deposit(int num1,int num2) throws Exception
    {
        // RuntimeException()是运行时异常最大的父类
        int sum;
        if(num2==0){
            throw new RuntimeException("可以自定义一个异常抛出:除数不能为0");
        }else{
           sum=num1/num2;
        }
    }
}

到此这篇关于Java异常Exception详细讲解的文章就介绍到这了,更多相关Java异常 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java异常Exception详细讲解

本文链接: https://lsjlt.com/news/165656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java异常Exception详细讲解
    目录1、异常中最大的父类Throwable2、try-catch-finally三条语句注意的问题3、final-finally-finalize的各作用4、throws关键字5、t...
    99+
    2024-04-02
  • Java详细讲解异常Exception的处理
    目录异常介绍常见的运行时异常1.空指针异常2.数学运算异常3.数组下标越界异常4.类型转换异常5.数字格式不正确异常异常处理流程异常介绍 基本概念 程序执行中发生的不正常情况称为异常...
    99+
    2024-04-02
  • 超详细讲解Java异常
    目录一、Java异常架构与异常关键字Java异常简介Java异常架构1、Throwable2、Error(错误)3、Exception(异常)4、受检异常与非受检异常Java异常关键...
    99+
    2024-04-02
  • 详解Java的Exception异常机制
    目录一、前言二、关于RuntimeException三、异常的避免四、异常的捕获五、异常的抛出(异常的转移)六、自定义异常一、前言 在Java中,我们在执行代码的过程中难免会遇到错误...
    99+
    2024-04-02
  • Java超详细讲解异常的处理
    目录1、异常的概念和体系结构1.1异常的概念1.2异常的体系结构及分类2、异常的处理2.1防御式编程2.2异常地抛出2.3异常的捕获(1)异常声明throws(2)try-catch...
    99+
    2024-04-02
  • Java异常 Exception类及其子类(实例讲解)
    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象。Java异常处理通过5个关键字try、catch、finally、throw、thr...
    99+
    2023-05-30
    java exception 子类
  • JavaSE详细讲解异常语法
    目录1.异常的概念2.异常的体系结构3.异常的处理3.1抛出异常3.2处理异常3.2.1throws3.2.2try-catch3.3异常的处理流程4.自定义异常1.异常的概念 Ja...
    99+
    2024-04-02
  • Java 超详细讲解Spring MVC异常处理机制
    目录异常处理机制流程图异常处理的两种方式简单异常处理器SimpleMappingExceptionResolver自定义异常处理步骤本章小结异常处理机制流程图 系统中异常包括两类: ...
    99+
    2024-04-02
  • Python异常与错误处理详细讲解
    基础知识 优先使用异常捕获 LBYL(look before you leap): 在执行一个可能出错的操作时,先做一些关键的条件判断,仅当满足条件时才进行操作。 EAFP(eais...
    99+
    2022-12-22
    Python异常 Python错误处理
  • 关于JAVA异常类结构的详细讲解(附实例)
    1、异常类大致结构2.Throwable是所有异常类的超类.3.当程序可能出现错误(异常)的时候应该使用,使用关键捕获异常进行处理.4.捕获异常结构如下:public void test() { int num1 = 10; ...
    99+
    2017-04-28
    java教程 异常
  • Java 异常机制Exception和自定义异常
    目录异常机制异常体系结构异常的捕获与抛出自定义异常异常机制 异常:就是不符合实际需求,在实际中可能不存在也可能不满足实际,所以出现的问题称之为异常。 异常的三种类型: 检查性异常:用...
    99+
    2024-04-02
  • Java异常(Exception)处理以及常见异常总结
    目录前言异常简介 异常类型 总结前言 很多事件并非总是按照人们自己设计意愿顺利发展的,经常出现这样那样的异常情况。例如: 你计划周末郊游,计划从家里出发→到达目的→游泳→烧烤→回家。...
    99+
    2024-04-02
  • 详解Reactor如何优雅Exception异常处理
    目录异常处理的底层机制实操 —— try-catch-finally的平替1. 降级兜底 - onErrorReturn/onErrorResume2. 打印...
    99+
    2023-02-15
    Reactor Exception异常处理 Reactor Exception异常 Reactor Exception
  • FlutterFuture异步操作详细讲解
    目录异步future创建Future异步创建使用Futureawait关键字Streamstream和Future的区别生成器函数同步生成器异步生成器递归生成器异步 future F...
    99+
    2023-03-10
    Flutter Future异步操作 Flutter Future异步 Flutter异步操作
  • rust异步编程详细讲解
    目录简化版本 Future理解Future的模型async/awit 使用简化版本 Future // wake 函数 reactor发现状态是ready 通知executor 函数...
    99+
    2022-12-16
    rust异步编程 rust异步原理
  • Java Exception异常全方面分析
    目录一、什么是异常?Java的异常体系如何排查异常二、 处理异常try…catch基本语法这个时候就要处理异常如果我们用Exception来捕获异常呢finally在方...
    99+
    2024-04-02
  • Java零基础讲解异常
    目录什么是异常?异常的处理异常的抛出处理异常throws声明异常捕获异常finally:异常的处理流程自定义异常什么是异常? 异常在我们写代码是特别常见,因为程序员大部分时间都在修复...
    99+
    2024-04-02
  • Java 枚举详细讲解
    目录 什么是枚举? 如何使用Java枚举? 如何使用Java枚举中的常量值? 如何在Java枚举中添加方法? 什么是枚举? 枚举是一种特殊的数据类型,用于定义具有固定个数的常量集。它可以帮助我们更好地管理常量,使代码更易于阅读和维护。 ...
    99+
    2023-09-01
    java 开发语言 javase 面向对象 枚举
  • Java异常 Factory method'sqlSessionFactory'rew exception;ested exception is java.lang.NoSuchMet
    springboot 引入mybatis-plus后报错: Factory method ‘sqlSessionFactory' threw exception; nested ex...
    99+
    2024-04-02
  • Java异常处理操作 Throwable、Exception、Error
    异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。 Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作