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

Java中的异常处理

时间:2023-07-01 14:11:45浏览次数:38  
标签:Java 处理 System int println 异常 public out

前言

在学习过程中,遇到较少的异常处理,对这方面的知识不太熟。在这次重新学习的时候整理一次。

1. 异常

1.1 分类

  1. 运行时异常: 可以被避免,编译时可以忽略。
  2. 检查时异常: 人的问题无法遇见,例如打开不存在的文件
  3. 错误:编译检查不到,脱离人的控制。

1.2 处理框架

  1. 将异常定义为类处理, Throwable是所有异常的父类。
  2. 异常处理分为 Error和Exception两大类。
  3. 在运行时异常中可以从逻辑上避免,在程序中可以处理。
    image

2. 异常的处理

2.1 捕获异常

surround快捷键套代码,ctrl+alt+t
捕获异常可以使发生异常的程序继续运行。

  1. 可以写多个catch语句进行多个捕获,但是,捕获类型的顺序必须按照异常框架顺序,由低到高进行捕获。
  2. try和catch相关部分只有一个会执行,finally都会执行。因此释放io连接,资源等放在finally中。
public static void main(String[] args) {
        int a=1,b=0;
        int[] arr = {1,2,3};
        try {    //监控区域
//            System.out.println(a/b);
            System.out.println(arr[3]);
        }catch (ArithmeticException e){     //处理区域
            System.out.println("捕获到运行时异常");
        }catch (Throwable e) {
            System.out.println("所有都捕获");
        }
        finally {   //善后工作,释放资源之类的
            System.out.println("我都执行");
        }
    }

2.2 抛出异常

  1. 方法内throw 主动制造异常,方法上throws表明方法无法处理这个异常。
  2. 对于RuntimeException,程序会自动抛出异常。
  3. throw抛出异常后的代码不会继续执行。
public static void main(String[] args) {
        try {
            new Application().compute(2,0);
        } catch (Exception e) {
            System.out.println("除数不能为0");
        }

    }

//    public   void compute(int a,int b) {    //运行时异常可以自动抛出
//        System.out.println(a/b);
//    }

    public void compute(int a,int b) throws  ArithmeticException{
        if(b==0) {
            throw new ArithmeticException();
        }
        System.out.println(a/b);
    }

自定义异常

步骤:

  1. 创建自定义异常类 继承Exception
  2. 在方法中throw抛出
  3. 若在当前方法处理异常使用try-catch捕获。
  4. 否则在方法声明处throws抛出给方法调用者处理出现异常方法的调用者捕获并处理。
//自定义异常,方法中判断时抛出,由调用者处理。
public class MyException extends Exception{
    int age;
    public MyException(int age) {
        this.age = age;
    }
//打印对象会调用toString方法。
    @Override  
    public String toString() {
        return "MyException{" +
                "age=" + age +
                '}';
    }
}

    public static void main(String[] args) {
        try {
            test(12);
        } catch (MyException e) {
            System.out.println(e);
        }
    }

    public static  void test(int a) throws MyException{
        System.out.println("传递参数为:" + a);
        if(a>10) {
            throw new MyException(a);
        }
    }

image

标签:Java,处理,System,int,println,异常,public,out
From: https://www.cnblogs.com/its1440/p/17518705.html

相关文章

  • Swift 多Target预编译Preprocessor Macros中添加字段后不生效处理
    在其中一个Target的PreprocessorMacros中添加字段RVCTAG后,代码判断发现不生效代码逻辑如下#ifPROJECTIDreturntrue#elsereturnfalse#endif还需要在BuildSetting---> Swiftcompiler-CustomFlags--->OtherSwfitFlags中添加对应的宏设置,如下 ......
  • java时间工具类型,格式化时间,最近7天 月初 月末 季度 月度 时间格式化
    常用java时间格式化:packagecom.tz.util;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;/***时间工具类最近7天月初月末季度月度时间格式化等等……**@description时间工具类*@author:tz*@dtate:......
  • JS高级用法:像大神一样玩转JavaScript
    前言众所周知,JavaScript是一种非常流行的编程语言,它已经成为了网页开发的必备技能。但是,在我们从事JavaScript编程的时候,我们却没有完全发掘和利用它的全部潜力。在本文中,我们将分享一些高级的JavaScript技巧,希望帮助掘友们更好地理解和掌握JavaScript编程。关于JS高级用法在学习Ja......
  • java入门(第一周)
    Day1一、1、常见的cmd命令指令符         功能       例子(1)盘符+冒号---------盘符切换   例:E:回车,表示切换到E盘(2)dir-------------------查看当前路径下的内容(3)cd目录-------------进入单级目录   (4)cd..----------------......
  • day06 6.1 Java基础
    day066.1Java基础【一】Python和Java中的字节与字符串的关系【1】Java中字节数组与字符串之间的转换关系字节数组的创建方式一importjava.lang.reflect.Array;importjava.util.Arrays;publicclassDemo01{publicstaticvoidmain(String[]args){//......
  • 3、Apache Kudu集成impala(shell和java操作)的详细操作
    ApacheKudu系列文章1、ApacheKudu介绍及架构、工作原理、两种部署方式、使用限制详解2、ApacheKudu-javaapi操作kudu详细示例以及kudu的三种实现示例3、ApacheKudu集成impala(shell和java操作)的详细操作文章目录ApacheKudu系列文章一、kudu集成impala1、impala配置修改二......
  • Linux Shell文本处理
    预计更新1:基础知识简介和安装基本命令变量和环境变量2:流程控制条件语句循环语句函数3:文件处理文件读写文件权限和所有权文件搜索和替换4:网络和进程网络通信进程管理信号处理5:文本处理正则表达式文本分析和处理生成报告和日志6:用户界面命令行参数和选......
  • Linux Shell文件处理
    预计更新1:基础知识简介和安装基本命令变量和环境变量2:流程控制条件语句循环语句函数3:文件处理文件读写文件权限和所有权文件搜索和替换4:网络和进程网络通信进程管理信号处理5:文本处理正则表达式文本分析和处理生成报告和日志6:用户界面命令行参数和选......
  • Java基础复习——常用类String
    Java常用类StringString类简介String对象用于保存字符串,也就是一组字符序列字符串常量对象是用双引号括起来的字符序列,例如:"你好","12.3","boy"等字符串的字符使用Unicode字符编码,一个字符(不区分汉字还是字母)占两个字节String类较常见的构造方法Strings1=......
  • Java基础复习——接口
    接口(interface)什么是接口?接口主要用来描述类具有什么功能,而并不给出每个功能的具体实现。接口不是类,是对类的一组需求描述,这些类就是遵从接口描述的统一格式进行定义。定义接口定义接口的关键字:interface接口与类的关系:实现关系(implements)继承是“isa”的关系,而接......