首页 > 编程语言 >Java基础语法(十一):异常的种类

Java基础语法(十一):异常的种类

时间:2023-05-14 13:32:59浏览次数:33  
标签:十一 Java 检查 处理 程序 语法 file 异常

前言

在Java编程中,异常是无法避免的。当程序发生异常时,会中断当前的流程,转而执行异常处理流程。了解Java异常种类及其使用场景,是我们编写健壮且可靠的程序的关键。本篇文章将介绍Java异常的种类,帮助读者更好地理解异常处理机制。


一、异常是什么?

在Java中,异常是指在程序运行时所发生的错误或不正常的行为。当代码执行遇到异常,会导致程序中断,如果不加处理就会使整个程序崩溃。为了避免这种情况,我们可以使用Java的异常处理机制,将异常捕获与处理。


二、异常的种类

Java异常分为两类:可检查异常(Checked Exception)和不检查异常(Unchecked Exception)。

可检查异常:

可检查异常是指在程序编译时能够被检测到的异常,程序员需要在代码中进行明确的异常处理或通过 throws 关键字将异常抛出给调用者。

以下是 Java 常见的可检查异常类型:

IOException:操作文件或网络连接可能出现的异常;

SQLException:操作数据库出现错误时的异常;

ClassNotFoundException:在使用 Class.forName() 方法时,如果找不到指定的类,就会抛出异常;

InterruptedException:当一个线程被另一个线程中断时,会抛出该异常;

InvocationTargetException:通过反射调用方法,如果该方法抛出异常,则会将该异常包装在 InvocationTargetException 中抛出。

不检查异常:

不检查异常是指在程序运行时才能够被检查到的异常,通常是由于代码逻辑错误或资源问题引起的。

以下是 Java 常见的不检查异常类型:

RuntimeException:程序本身的逻辑错误,如算数异常、数组下标越界等;

IndexOutOfBoundsException:当访问某个集合的数组、列表或字符串时索引越界时引发;

IllegalArgumentException:传递给方法的参数无效时抛出;

NullPointerException:当一个空对象上调用实例方法或访问实例变量时引发的异常。

以下是一个异常处理的示例代码:

import java.io.*;
 
public class ExceptionDemo {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
            br.close();
        } catch (FileNotFoundException e) {
            System.out.println("The file doesn't exist.");
        } catch (IOException e) {
            System.out.println("Errored reading the file.");
        }
    }
}

在这个示例代码中,我们尝试读取一个文件的内容,并使用 try-catch 语句捕获可能出现的 FileNotFountException 和 IOException。如果文件不存在,程序会输出 “The file doesn't exist.” ,如果读取文件过程中发生 IO 异常,程序会输出 “Errored reading the file.” 。


总结

Java异常处理机制对于编写可靠的程序至关重要。可检查异常需要在代码中显式地进行处理,使程序在编译和运行期间都能够更好地处理异常。而不检查异常则是程序逻辑错误或资源问题引起的异常,需要通过编写健壮的代码来避免异常的发生。

标签:十一,Java,检查,处理,程序,语法,file,异常
From: https://blog.51cto.com/u_15949341/6274861

相关文章

  • Java学习笔记2
    数据类型Java是一种强类型语言,必须为每一个变量声明一种类型。在Java中数据类型分为:基本数据类型和引用数据类型。下面讨论Java的8种基本数据类型,4种整型,2种浮点型,1种字符类型char(用于表示Unicode编码的代码单元)和1种表示真值的boolean类型。标识符:就是给类,方法,变量等起的名......
  • Java学习笔记3
    流程控制语句流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)。顺序结构顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。分支结构......
  • Java学习笔记4
    练习题练习1:机票机票价格按照淡旺季,头等舱和经济舱收费,输入机票原价,月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。importjava.util.Scanner;publicclassHello{publicstaticvoidmain(S......
  • Java学习笔记5
    先休息一下眼睛......
  • Java数组之杨辉三角
    publicclassArrayTestor02{publicstaticvoidmain(String[]args){//构造杨辉三角int[][]yanghui=newint[10][];for(inti=0;i<yanghui.length;i++){int[]row=newint[i+1];yanghui[i]=row;......
  • Java学习笔记1
    简述Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。语言特性Java之所以被开发,是要达到以下五个目的:应当使用面向对象程序设计方法学应当允许同一程序在不同的计算机平台执行应当包括内建的对计算机......
  • Java的线程
    介绍线程线程是系统调度的最小单元,一个进程可以包含多个线程,线程是负责执行二进制指令的。每个线程有自己的程序计数器、栈(Stack)、寄存器(Register)、本地存储(ThreadLocal)等,但是会和进程内其他线程共享文件描述符、虚拟地址空间等。对于任何一个进程来讲,即便我们没有主动去创建......
  • Java:SpringBoot整合MyBatis-Plus实现MySQL数据库的增删改查
    MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。文档https://baomidou.com/目录一、引入坐标二、配置三、CURD测试四、API数据接口一、引入坐标<dependency><groupId>com.baomidou</groupId><artifactId>m......
  • Java:Linux/Windows/macOS安装JDK
    目录开发环境安装JDK生产环境安装JDKJava版本开发环境安装JDK可以通过oracle的官方下载地址,下载安装https://www.oracle.com/cn/java/technologies/downloads/https://www.oracle.com/cn/java/technologies/downloads/archive/生产环境安装JDK文档https://openjdk.org/install/#Ja......
  • JAVA——继承详解
    JAVA——继承详解继承是面向对象三大特征之一,可以让类跟类之间产生父子关系可以把多个子类中重复的代码抽取到父类中,子类可以直接使用,减少代码重复,提高代码的复用性格式:publicclass子类extends父类{}继承后子类的特点子类可以得到父类的属性和行为,子类可以使用子类......