首页 > 编程语言 >Java中的异常

Java中的异常

时间:2024-07-15 08:59:26浏览次数:9  
标签:Java FileNotFoundException throws try txt 异常 public

异常

  • 概述:
    • 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。

  • 异常(Exception)的分类:
    • 编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如期格式化异常)

    • 运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。(如数学异常)

    • 异常的处理

    • Java异常处理的五个关键字:try、catch、finally、throw、throws

      • throws

      • public class ThrowsDemo {
        public static void main(String[] args) throws FileNotFoundException {
        read("a.txt");
        }
        // 如果定义功能时有问题发生需要报告给调用者。可以通过在方法上使用throws关键字进行声明
        public static void read(String path) throws FileNotFoundException {
        if (!path.equals("a.txt")) {//如果不是 a.txt这个文件
        // 我假设 如果不是 a.txt 认为 该文件不存在 是一个错误 也就是异常 throw
        throw new FileNotFoundException("文件不存在");
            }
          }
        }

        捕获异常try…catch

      • 格式:

      • try{
        编写可能会出现异常的代码
        }catch(异常类型 e){
        处理异常的代码
        //记录日志/打印异常信息/继续抛出异常
        }
        

        示例:

      • public class TryCatchDemo {
        public static void main(String[] args) {
        try {// 当产生异常时,必须有处理方式。要么捕获,要么声明。
        read("b.txt");
        } catch (FileNotFoundException e) {// 括号中需要定义什么呢?
        //try中抛出的是什么异常,在括号中就定义什么异常类型
        System.out.println(e);
        }
        System.out.println("over");
        }
        /*
        *
        * 我们 当前的这个方法中 有异常 有编译期异常
        */
        public static void read(String path) throws FileNotFoundException {
        if (!path.equals("a.txt")) {//如果不是 a.txt这个文件
        // 我假设 如果不是 a.txt 认为 该文件不存在 是一个错误 也就是异常 throw
        throw new FileNotFoundException("文件不存在");
        }
        }
        }

        finally 代码块

      • 概述 :有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行 不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的。

      • 注意:如果try或者catch中有return返回值,则先执行完finally中的代码,再返回数据。

标签:Java,FileNotFoundException,throws,try,txt,异常,public
From: https://blog.csdn.net/qq_65734626/article/details/140429218

相关文章

  • Java计算机毕业设计动物园售票系统的设计和实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加快和居民生活水平的提升,动物园作为集科普教育、休闲娱乐于一体的公共场所,日益受到公众的青睐。然而,传统的动物园售票方式往往存在......
  • Java计算机毕业设计停车场管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和汽车保有量的持续增长,停车难问题日益凸显,成为制约城市发展的瓶颈之一。传统停车场管理方式效率低下,信息不透明,车主常面临找车......
  • 搭建一个javaweb项目的准备流程
    搭建一个javaweb项目的准备流程以所学系统项目为例:1src\main\java\com\utils1.1tools:DruidTools.java​ 需要在lib中加入druid-xx-xx.jar包代码展示packagecom.utils;importcom.alibaba.druid.pool.DruidDataSourceFactory;importjavax.sql.DataSource;impor......
  • 基于java+springboot+vue实现的健身房管理系统(文末源码+Lw)113
     基于SpringBoot+Vue的实现的健身房管理系统(源码+数据库+万字Lun文+流程图+ER图+结构图+演示视频+软件包)系统功能:本健身房管理系统管理员,会员,员工。管理员功能有个人中心,会员管理,员工管理,会员卡管理,会员卡类型管理,教练信息管理,解聘管理,健身项目管理,指导项目管理,健身器材管......
  • 基于java+springboot+vue实现的在线教育系统(文末源码+Lw)111
     基于SpringBoot+Vue的实现的在线教育系统(源码+数据库+万字Lun文+流程图+ER图+结构图+演示视频+软件包)系统功能:本在线教育系统管理员功能有个人中心,用户管理,讲师管理,普通管理员管理,课程管理员管理,课程管理,课程分类管理,教师管理,名师管理,系统管理,订单管理。普通管理员和课......
  • ECMA标准ECMAScript(JavaScript的一个标准)和C#
    2024年6月26日,第127届ECMA大会正式批准了ECMAScript2024语言规范,这意味着它现在正式成为最新ECMAScript标准。ECMAScript是ECMA标准中最著名的编程语言标准,它定义了JavaScript语言的核心特性。C#语言则是由ECMA国际组织制定的编程语言标准,目前最新的版本是ECMA-334......
  • Java周总结
    一、1.学习简单的命令行操作2.安装JDK并运行成功第一个HelloWorld案例,在txt文本编写基础代码,利用cmd命令行编译(javac)为计算机语言,运行(java)成功显示HelloWorld。3.安装简单的Notepad++,并将txt文本编写的用Notepad++编写实现代码界面如下:此代码仍然在cmd命令行下实现,如下:......
  • [Java并发]
    sleep()、wait()、join()、yield()yield在Java中,yield()是一个Thread类的方法,它用于暂停当前线程并允许其他线程运行。它是一种线程调度的建议,告诉调度器可以切换到其他就绪状态的线程。调用yield()方法后,线程会从运行状态转换为就绪状态,让其他线程有机会执行。下面是一个简单......
  • Java实现堆排序算法详解及优化
    引言堆排序(HeapSort)是一种基于堆数据结构的比较排序算法。它具有良好的时间复杂度特性,在许多实际应用中表现出色。本文将详细讲解如何使用Java实现堆排序算法,并结合图解和实例代码,帮助您全面理解这一高级排序算法。同时,我们还将探讨堆排序的优化方法,以进一步提高其性能。......
  • Java基础05:类型转换
    由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级(根据容量来看)。低------------------------------------------>高byte,short,char—>i......