首页 > 其他分享 >异常02-捕获和抛出异常

异常02-捕获和抛出异常

时间:2023-02-20 09:23:28浏览次数:38  
标签:02 抛出 System println finally catch 异常 public out

异常处理机制

  • 抛出异常
  • 捕获异常
  • 异常处理的5个关键字:
    • try、catch、finally、throw、throws
package com.exception.demo01;

public class Demo01 {
    public static void main(String[] args) {
        //new Demo01().a();
        System.out.println(11/0);
    }

    /*
    public void a(){
        b();
    }

    public void b(){
        a();
    }

     */
}

package com.exception.demo01;

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        //try catch 一般要一起使用
        try{//try 监控区域
            System.out.println(a/b);
        }catch(ArithmeticException e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("程序出现异常,变量b不能为0");
        }finally{//finally 处理善后工作,无论有无异常,最后都会被执行
            System.out.println("finally");
        }
        //finally{} 部分可以不用; 可用于: 假设IO,资源,关闭
    }

}


package com.exception.demo01;

public class Test2 {
    public static void main(String[] args) {
        new Test2().test(1,0);
    }
    //假设这个方法中,处理不了这个异常。方法上抛出异常
    public void test(int a,int b) throws ArithmeticException{
        if(b==0){
            throw new ArithmeticException(); //主动地抛出异常,一般在方法中使用
        }

    }

}


/*
 int a = 1;
 int b = 0;
 //假设要捕获异常:要从小到大!
        //try catch 一般要一起使用
  try{//try 监控区域
            //new Test2().a();
            System.out.println(a/b);
        }catch(Error e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("Error");
        }catch(Exception e){
            System.out.println("Exception");
        }catch(Throwable e){
            System.out.println("Throwable");
        }finally{//finally 处理善后工作,无论有无异常,最后都会被执行
            System.out.println("finally");
        }
        //finally{} 部分可以不用; 可用于: 假设IO,资源,关闭


          /*
    public void a(){b();}
    public void b(){a();}

 */


package com.exception.demo01;

public class Test3 {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        //Ctrl + Alt + T 自动生成
        try {
            System.out.println(a/b);
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
        }
    }
}

标签:02,抛出,System,println,finally,catch,异常,public,out
From: https://www.cnblogs.com/wangzhizhi/p/17136207.html

相关文章

  • 异常03自定义异常和经验小结
    自定义异常使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可在程序中使用自定义......
  • Visual Sudio 2022 为什么安装 2.2 .net SDK、3.1 .netSDK 找不到目标文件
     下面是对VisualStudio2022编译器的讲解  下载SDK链接https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks?cid=getdotnetsdk 打开这个链接,对应......
  • 2023年2月19日
    c语言基础复习2月19日p10复习了scanf的运用,忘记了利用scanf给变量赋值(?)要用&符号,错误:换行的\n敲成了/n,变量没有初始化。p11赋值:a=b在c语言中是把b的值赋予给a而不是像数......
  • 【YBT2023寒假Day10 B】随机游走(记忆化搜索)
    随机游走题目链接:YBT2023寒假Day10B题目大意有n个点排成环,你一开始在1号点,每次可以等概率选择左边跳两格,左边跳一格,右边跳一格,右边跳两格。走到一个走过的点就停......
  • 2023-02-19,新的30道Vue面试题!
    分享当下较新的30道Vue面试题!(qq.com)Thedifferencebetweenvueandangular?VueandAngulararebothpopularJavaScriptframeworksusedforbuildingwebappli......
  • 【YBT2023寒假Day10 A】集合比较(数学)(启发式分裂)
    集合比较题目链接:YBT2023寒假Day10A题目大意给你一个长度为n的排列p,定义两个大小为n不可重集合的比较方式是先比较各自第p1小的元素,如果相同比p2,以此类推。给......
  • 异常
    前两天看到collection接口,今天想着就把异常过一下吧,回头再看看list啊set那些,上次听一个面试视频的时候感觉他说的好厉害,我听得很懵,所以还是得重新过一下准备面试,太难了面试......
  • C/C++学生随机抽号演讲计分系统[2023-02-19]
    C/C++学生随机抽号演讲计分系统[2023-02-19]学生随机抽号演讲计分系统(★★★★)设计一款用于课程大作业检查或比赛计分的软件,基本功能:(1)设置本课程的学生总数(2)根据......
  • #yyds干货盘点#【愚公系列】2023年02月 微信小程序-Vant实现自定义tabBar
    前言小程序自定义tabBar官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html1、说明小程序自定义tabBar两种方式:一种采用......
  • 2023/02/19刷题+Educational Codeforces Round 143
    EducationalCodeforcesRound143链接EducationalCodeforcesRound143A题这个题,打比赛的时候看错了,考试结束补题的时候才发现,这个题其实很简单因为我们只能从栈......