JAVA异常体系结构详解

JAVA异常体系结构详解

异常概述

Java基础编程语言中,异常(Exception)是指在一个程序的运行过程中发生的错误或者问题。异常表示程序在运行时遇到了某个非正常的情况,这个特殊情况将终止当前正在执行的代码块并且会向调用者传递一个错误信息,在异常处理的过程中是使用异常对象来表示的。相关类都保存在 java.lang.Exception 包中。

Java 的异常体系结构以Throwable为顶级父类,它派生出两个字类: Error 和 Exception。 Error 类对象表示严重的错误,程序通常无法处理;Exception 表示非常规事件,程序可以通过 try...catch 块等异常处理机制来处理这些事件。

异常处理

Java 语言提供的异常处理机制是通过 try, catch, finally 块来实现的,try 后面紧随着的是主要语句块,在其中产生异常的语句会被直接跳到 catch 块中进行处理。

try{
     //主要语句块
}catch(异常类型 e){
     //异常处理语句块
}finally{
     //一定执行语句块
}

在 try 块语句内,可能会产生异常,如果没有进行异常处理,在异常发生的时候程序就会直接崩溃。因此,我们需要通过 catch 块中的异常处理语句来处理异常并解决问题。finally块是无论程序是否出现异常都执行的块,通常用来进行资源释放。其中异常类型是指关心捕获的异常类型,如果没有指明具体 异常类型,在 try 块中产生的所有异常都会被 catch 块捕获和处理。

异常分类

Java 的异常按照是否在程序中被检查,分为可查性异常和运行时异常或错误。

可查性异常

可查性异常主要指在文件异常、网络异常等情况,在Java编译器进行编译时,这些异常已经被标识出来并可以进行检查处理。

常用的可查性异常有:

  • FileNotFoundException:文件未找到异常。
  • IOException:输入输出异常。
  • ClassNotFoundException:未找到相应的类。
  • SQLException:操作数据库异常。

运行时异常或错误

运行时异常或错误是指在程序运行期间,由于代码的编写错误或环境因素导致的异常。Java 运行时系统出现了不可分析的行为或数据状态。由于这些异常或错误将会在程序执行过程中产生,而在编译时不能定位。

常用的运行时异常或错误有:

  • NullPointerException:空指针异常。
  • ArrayIndexOutOfBoundsException:数组下标越界。
  • IllegalArgumentException:非法参数异常。
  • NoClassDefFoundError:未定义类错误。

异常处理示例

异常抛出

在Java语言中,我们自定义一个方法,并在其中进行除以零操作,当 divisor 为0时,Java默认会抛出 java.lang.ArithmeticException 异常。

public class ExceptionTest {
    public static void main(String[] args) {
        try{
            division(30,0);
        }catch(ArithmeticException e){
            System.out.println("除数不为0");
        }
    }
    public static void division(int num1, int num2) throws ArithmeticException{
        if(num2 == 0){
            throw new ArithmeticException("除数不能为0");
        }
        System.out.println(num1/num2);
    }
}

自定义异常

Java语言中,可以通过继承 Exception 或者是 RuntimeException 来定义自己的异常类。当出现代码异常情况时,程序可以抛出这个异常并在 catch 语句块中进行处理。

public class MyExceptionTest {
    public static void main(String[] args) {
        try{
            throw new MyException("自定义异常");
        }catch(MyException e){
            System.out.println(e.toString());
        }
    }
}

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

以上就是 Java 异常体系结构及相关内容的详细讲解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA异常体系结构详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • bootstrap——bootstrapTable实现隐藏列的示例

    当你需要在Bootstrap Table中隐藏列时,可以通过以下步骤实现: 第一步:下载Bootstrap Table 首先,需要从Bootstrap Table官网下载Bootstrap Table插件。 官网链接:https://bootstrap-table.com/ 第二步:编写HTML代码 在编写HTML代码之前,需要加载Bootstrap样式表和…

    Java 2023年6月15日
    00
  • 基于Mybatis plus 自动代码生成器的实现代码

    下面就为您详细讲解“基于Mybatis plus 自动代码生成器的实现代码”的完整攻略。首先我们来了解一下Mybatis plus自动代码生成器。 Mybatis plus是Mybatis的增强版,提供了很多实用的功能,其中就包括代码生成器。Mybatis plus代码生成器可以根据数据库表生成对应的JavaBean、Mapper、Service等代码,大大…

    Java 2023年5月20日
    00
  • Java中List.of()和Arrays.asList()的区别及原因分析

    Java中List.of()和Arrays.asList()的区别及原因分析 背景 在Java中,我们经常需要使用List集合来存储一组数据,如何高效地初始化一个List是我们需要关注的问题。在Java 9及其后续版本中,引入了List.of()方法,提供了一种更简单、更易读的方式来初始化List集合。但是,在Java 9之前,我们经常使用Arrays.as…

    Java 2023年5月26日
    00
  • SpringBoot整合Redis实现序列化存储Java对象的操作方法

    下面我来详细讲解“SpringBoot整合Redis实现序列化存储Java对象的操作方法”的完整攻略。 一、准备工作 在使用SpringBoot整合Redis以实现Java对象的存储前,我们需要先进行一些准备工作。 在pom.xml中引入Redis相关的依赖,可以使用Jedis或Lettuce两个库。这里我以Lettuce为例: <dependency…

    Java 2023年6月3日
    00
  • JSP实现从数据库导出数据到Excel下载的方法

    一、前言 本文将介绍在JSP中如何通过JDBC连接数据库,并将从数据库中查询到的数据导出为Excel文件进行下载。下面是本文所需要用到的前置条件: 1.已安装JDK环境并配置好环境变量2.已安装Tomcat服务器并成功启动3.已安装MySQL数据库 二、数据库连接以及查询操作 首先我们需要用到JDBC连接数据库,实现之前需要导入MySQL对应的JDBC驱动包…

    Java 2023年6月15日
    00
  • Java配置DBeaver的详细步骤

    以下是Java配置DBeaver的详细步骤: 步骤一:下载并安装DBeaver 1.前往DBeaver官网,下载对应操作系统的安装包。例如:Windows系统下载dbeaver-ce-x.y.z-x64-setup.exe。 2.双击exe文件,按照向导提示安装DBeaver。 步骤二:安装MySQL驱动 1.前往MySQL官网,下载对应版本的MySQL C…

    Java 2023年6月1日
    00
  • java Lucene 中自定义排序的实现

    下面就是Java Lucene中自定义排序的实现攻略: 1.概述 在Lucene中,默认使用文档相关度来排序搜索结果。但是,在某些场景下,开发者需要自行定义排序规则,如按照价格、发布时间等等。Lucene提供了自定义排序器的接口实现,可以方便地实现自定义排序。 2.排序器接口 Lucene的排序器接口是org.apache.lucene.search.Fie…

    Java 2023年6月15日
    00
  • jsp+servlet+jdbc实现对数据库的增删改查

    首先,我们需要明确一下技术栈的概念: JSP (Java Server Pages):基于Java语言的服务器端网页开发技术; Servlet:是Java Web应用程序的核心,位于服务端,负责处理浏览器发送过来的HTTP请求并返回响应结果; JDBC (Java Database Connectivity):Java数据库连接,Java语言操作关系型数据库…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部