首页 > 其他分享 >异常处理

异常处理

时间:2023-06-01 14:23:27浏览次数:28  
标签:-------- 处理 System finally println 异常 out

Lambda表达式是Java 8新引入的一种语法,是一种紧凑的传递代码的方式。

理解Lambda表达式,我们先回顾一下接口、匿名内部类和代码传递。

try-catch-finally

    public static void main(String[] args) {
        System.out.println(" =========== 除法计算开始 ===========");
        try {
            int x = 1;
            int y = 0;
            System.out.println("除法计算:" + (x / y));
        // 只有一个catch,只能处理一个异常, 如果存在其他没有处理的异常, 依次会导致程序中断执行
        } catch (ArithmeticException ex) { // class ArithmeticException extends RuntimeException 运行时异常
            ex.printStackTrace(); // 打印完整的异常信息
            System.out.println("-------- 在finally块之前执行!!! --------");
        } finally {
            //不管异常是否catch处理完,都执行finally(除了一种情况,存在System.exits())
            System.out.println("-------- 不管是否出现异常都执行!-------- ");
        }

//      如果异常没有全部catch,那么这里就不会执行finally后面的代码!!!
        System.out.println("=========== 除法结束 ===========");
    }

结果:

 =========== 除法计算开始 ===========
java.lang.ArithmeticException: / by zero at com.study.ExceptionDemo.main(ExceptionDemo.java:12)
-------- 在finally块之前执行!!! --------
-------- 不管是否出现异常都执行!-------- 
=========== 除法结束 ===========
    public static void main(String[] args) {
        System.out.println(" =========== 除法计算开始 ===========");
        try {
            int x = Integer.parseInt(args[0]);
            int y = Integer.parseInt(args[1]);
            System.out.println("除法计算:" + (x / y));
        // 只有一个catch,只能处理一个异常, 如果存在其他没有处理的异常, 依次会导致程序中断执行
        } catch (ArithmeticException ex) { // class ArithmeticException extends RuntimeException 运行时异常
            ex.printStackTrace(); // 打印完整的异常信息
            System.out.println("-------- 在finally块之前执行!!! --------");
        } finally {
            //不管异常是否catch处理完,都执行finally(除了一种情况,存在System.exits())
            System.out.println("-------- 不管是否出现异常都执行!-------- ");
        }

//      如果异常没有全部catch,那么这里就不会执行finally后面的代码!!!
        System.out.println("=========== 除法结束 ===========");
    }
  • catch捕获的异常没有成功,所以直接中断了程序

执行结果:

 =========== 除法计算开始 ===========
-------- 不管是否出现异常都执行!-------- 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
	at com.study.ExceptionDemo.main(ExceptionDemo.java:8)

throws

异常的父子关系:
Throwable
    Error;Exception
        RuntimeException;CheckedException
            ArithmeticException,NullPointerException,
            NumberFormatException,ArrayIndexOutOfBoundsException;ClassCastException 

Error: 此时的程序没执行,无论用户怎样处理,都处理不了 
Exception: 程序运行时产生的异常,用户可以处理(后异常处理)
RuntimeException与CheckedException区别 
CheckedException定义的异常◆必须◆被处理,而RuntimeException的异常可以★选择性处理★

标签:--------,处理,System,finally,println,异常,out
From: https://www.cnblogs.com/allenwork/p/17448693.html

相关文章

  • 【macOS】iCloud Drive同步异常解决方案(上传/下载时进度条卡住)
    ✨iCloudDrive同步异常如下图上传进度条一直卡着不动✨解决方案Terminal运行如下命令killallbirdcd~/Library/Application\Supportsudocp-rCloudDocs~/Desktop/#备份sudorm-rf~/Library/Application\Support/CloudDocs之后iCloudDrive同步飞快桌面......
  • 使用VAE、CNN encoder+孤立森林检测ssl加密异常流的初探——真是一个忧伤的故事!!!
    sslpayload取1024字节,然后使用VAE检测异常的ssl流。代码如下:fromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScalerimportnumpyasnpimporttensorflowastfimporttflearnfrommatplotlibimportpyplotaspltimport......
  • sparkSQL原理和使用——一般在生产中,基本都是使用hive做数据仓库存储数据,然后用spark
    一、sparkSQL概述1.1什么是sparkSQLSparkSQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。类似于hive的作用。1.2sparkSQL的特点1、容易集成:安装Spark的时候,已经集成好了。不需要单独安装。2、统一的数据访问方......
  • python之struct模块处理二进制
    嵌入式开发中,有时需要对二进制流文件进行读写操作,一种方法是将二进制流文件转换为c语言数组形式。这样可以使用python的struct模块,python的struct模块可以方便的进行字节与二进制之间的相互转换。1struct模块常用的几个函数函数说明struct.pack(format,v1,v2,...)......
  • 对接第三方接口教程(发送Http请求及返回参数处理)
    1.首先Http工具类建议使用 packagecn.hutool.http;//这个包下面的HttpUtil.post(StringurlString,Stringbody)这个方法会省去很多事情,不用去设置header的一些基本东西,get就不说了,get也能用post请求,把参数拼url后边就行了2.要看第三方接口的鉴权是如何做的,如果是t......
  • vue+element项目中统一处理接口异常,只提示一次异常信息
     有时候一个页面会同时调多个接口,但是多个接口异常,需要做提示,那么提示的时候会弹出很多的提示信息,这无疑让体验感降低很多。 所以针对这种情况,我们配合elementUI统一做一个异常状态的处理,只能显示一次提示的功能,后续代码调接口的时候也可以省略去写异常状态下的逻辑了。首先......
  • C-MAPSS数据集预处理代码
    数据预处理代码(语言为python)代码来源于《Variationalencodingapproachforinterpretableassessmentofremainingusefullifeestimation》作者的公开代码,笔者有更改,不保证绝对正确,请谨慎使用。github:https://github.com/NahuelCostaCortez/RemainingUseful-Life-Estim......
  • mysql重复记录处理
    这里记录一下用到的语句和语句模板:--查询出重复的数据SELECTCOUNT(*)asrepeats,address,signer_name,signer_mobileFROMuser_operation_useraddressGROUPBYaddress,signer_name,signer_mobileHAVINGrepeats>1;--查询出重复的数据中最小的idSELECTMIN(......
  • jQuery 是javascript的一个库(常用插件、处理器)
    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validationjQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率。极大地简化了JavaScript编程。Javascipt跟jQuery的区别:Javascript是一门编程语言,我们用......
  • ARM64 el1_irq 处理
     .align6el1_irq:kernel_entry1msrdaifclr,#1//enablefiqenable_dbg_if_not_steppingx0#ifdefCONFIG_TRACE_IRQFLAGSbltrace_hardirqs_off#endif#ifdefCONFIG_PREEMPTget_thread_infotskldrw24,[tsk,#TI_PREEMPT]//getpreemptcountad......