Java中有哪些类型的异常?

Java中异常的类型可以分为两类:检查性异常(Checked Exception)和非检查性异常(Unchecked Exception)。

检查性异常(Checked Exception)

检查性异常是指在编译阶段进行检查的异常,如果程序中出现了这些异常,编译器会提示你必须处理该异常。这些异常通常属于外部环境引起的异常,比如I/O异常、SQL异常等。

Java中常见的检查性异常包括:

IOException

它是Java中最常见的检查性异常之一,可以是在文件读写操作中发生,也可以在网络连接等操作时发生。

下面的示例代码展示了如何处理IOException:

import java.io.*;

public class FileReadDemo {

    public static void main(String[] args) {
        try {
            File file = new File("path/to/file.txt");
            BufferedReader br = new BufferedReader(new FileReader(file));
            String st;
            while ((st = br.readLine()) != null)
                System.out.println(st);
        }
        catch (IOException e) {
            System.out.println("Exception caught: " + e);
        }
    }

}

SQLException

SQLException是在连接数据库或操作数据库时可能发生的异常。

下面的示例代码展示了如何处理SQLException:

import java.sql.*;

public class DBConnectDemo {

    public static void main(String[] args) {

        Connection conn = null;
        Statement stmt = null;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/test?useSSL=false", "user", "password");
            stmt = conn.createStatement();
            String sql = "SELECT * FROM users";
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()) {
                System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getString("email"));
            }
        }
        catch (SQLException e) {
            System.out.println("Exception caught: " + e);
        }
        catch (ClassNotFoundException e) {
            System.out.println("Exception caught: " + e);
        }
        finally {
            try{
                if(stmt!=null)
                    conn.close();
            }
            catch(SQLException se){
            }
            try{
                if(conn!=null)
                    conn.close();
            }
            catch(SQLException se){
                se.printStackTrace();
            }
        }
    }
}

非检查性异常(Unchecked Exception)

非检查性异常也叫做运行时异常,它通常指的是程序本身的错误,如空指针异常、数组下标越界异常等。

Java中常见的非检查性异常包括:

NullPointerException

当一个对象引用为 null,而你尝试调用该对象上的方法时,就会抛出 NullPointerException 异常。

String str = null;
System.out.println(str.substring(0, 1)); //throws NullPointerException

ArrayIndexOutOfBoundsException

当数组访问时索引超出范围时,将会抛出 ArrayIndexOutOfBoundsException 异常:

int[] arr = new int[5];
System.out.println(arr[5]); //throws ArrayIndexOutOfBoundsException

总的来说,Java中异常的类型非常多,开发者在编写代码的过程中需要了解不同类型的异常、产生异常的场景以及如何处理异常。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中有哪些类型的异常? - Python技术站

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

相关文章

  • Java中Arrays类与Math类详解

    Java中Arrays类与Math类详解 在Java中,Arrays类和Math类是常用的工具类,主要提供了一些静态方法来方便我们进行数组、数值计算等操作。 Arrays类 Arrays类提供了很多有用的方法来进行数组的操作,包括数组的排序、查找、复制等。 数组排序 排序算法 Arrays类中提供了sort()方法来对数组进行排序,在方法中我们可以通过传入C…

    Java 2023年5月26日
    00
  • Java 中的注解详解及示例代码

    Java 中的注解详解及示例代码 什么是注解? 注解(Annotation)是 Java 5.0 版本引入的一种注释机制,它可以用于向程序中添加元数据,以此来帮助程序进行特定的处理,如编译、运行、部署等。 注解的作用 注解可以用于描述一个类、方法、变量等元素的信息,以便于编译、运行等后续操作时进行相应的处理。它可以帮助我们更加精确地描述程序中的某个元素的属性…

    Java 2023年5月23日
    00
  • Spring Boot 快速集成 Redis的方法

    下面是详细讲解“Spring Boot 快速集成 Redis的方法”的完整攻略。 简介 Redis是目前比较流行的高性能缓存和NoSQL数据库,通过使用它可以提高项目的性能和并发能力。而Spring Boot是目前比较流行的Web框架之一,提供了快速开发、易扩展、自动化配置等特性。下面我们将使用Spring Boot来快速集成Redis。 步骤 第一步:添加…

    Java 2023年5月19日
    00
  • 解读动态数据源dynamic-datasource-spring-boot-starter使用问题

    我来为您详细讲解“解读动态数据源dynamic-datasource-spring-boot-starter使用问题”的完整攻略。 一、什么是dynamic-datasource-spring-boot-starter dynamic-datasource-spring-boot-starter是一款基于SpringBoot的动态多数据源框架,能够帮助您快速…

    Java 2023年5月19日
    00
  • 详解如何在Spring Boot启动后执行指定代码

    在Spring Boot启动后执行指定代码可以使用Spring Boot提供的ApplicationRunner和CommandLineRunner接口。这两个接口都是在Spring Boot应用程序启动完成后运行的回调,并且被称为Spring Boot应用程序的启动回调。 ApplicationRunner接口 ApplicationRunner接口中包含…

    Java 2023年5月20日
    00
  • Spring Security源码解析之权限访问控制是如何做到的

    首先,Spring Security是一个基于Spring框架的安全框架,它提供了身份认证和授权等功能,帮助我们防止各种安全攻击,保障我们的应用程序安全。 Spring Security的权限访问控制是通过访问控制表达式来实现的,可以在配置文件中配置。访问控制表达式包含了许多参数和操作符,用于判断用户是否有权访问特定的资源。具体来说,Spring Secur…

    Java 2023年5月20日
    00
  • 详解Java中实现SHA1与MD5加密算法的基本方法

    当今网络环境中,安全性是非常重要的一个问题。密码的保护已经成为了一个必须面对的任务。SHA1和MD5是两种常见的加密算法,它们可以将密码字符串加密为一串看似随意的字符,从而实现密码的保护。在Java中,实现SHA1与MD5加密算法有以下基本方法: 1. 使用Java内置的MessageDigest类 MessageDigest是Java提供的安全类之一,它可…

    Java 2023年5月19日
    00
  • 通过viewport实现jsp页面支持手机缩放

    当我们在开发网页时,需要考虑到不同设备的屏幕尺寸和分辨率,使网页能够在多个设备上展示良好的效果,而Viewport正是用于解决这个问题的。 Viewport(视口)指的是浏览器窗口中用于显示网页内容的区域,它的宽度和高度可以受到浏览器和设备屏幕的影响。而移动设备的viewport比较小,因此需要对viewport进行设置以适应不同的屏幕大小和分辨率。接下来我…

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