8.2 异常处理机制

这篇具有很好参考价值的文章主要介绍了8.2 异常处理机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

8.2 异常处理机制

在Java中异常的处理就分文异常的抛出和捕获

异常处理的五个关键字

  1. try

    尝试去处理异常,try可以监控区域,也就是在这个代码块区域,产生的异常就可以捕获的到

  2. catch

    捕获异常,捕获异常要先知道异常的类型,也就是如果try中出现了ArithmeticException异常,就执行这个代码块内容

  3. finally

    无论是否执行最终都要执行的代码

  4. throw

    抛出异常,主动抛出一个异常

    方法内部使用throw一个异常,使用new关键词,在方法内部抛出的异常什么都不会做,抛出异常一般会在“方法中”时用

    方法内使用throw抛出异常

    package com.baidu.www.exception;
    
    public class Test2 {
        public static void main(String[] args) {
            int a = 1;
            int b = 0;
            //Ctrl+alt+t
            try {
                if(b==0){
                    throw new ArithmeticException();//主动抛出异常
                }
                System.out.println(a/b);
            } catch (Exception e) {
                e.printStackTrace();//这句换是自动生成的是打印错误的栈信息
            } finally {
            }
        }
    }
    //设么都不会做
    

    在方法中抛出异常会抛出异常

    package com.baidu.www.exception;
    
    public class Test2 {
        public static void main(String[] args) {
            new Test2().test(1,0);
    
        }
        public void test(int a, int b){
            if(b==0){
                throw new ArithmeticException();//主动抛出异常
            }
            System.out.println(a/b);
        }
    }
    /**
     * Exception in thread "main" java.lang.ArithmeticException
     * 	at com.baidu.www.exception.Test2.test(Test2.java:10)
     * 	at com.baidu.www.exception.Test2.main(Test2.java:5)
     *
     * Process finished with exit code 1
     */这里如果不做除法运算,主动抛出异常也会抛出异常
    
  5. throws

    抛出异常,这个是在方法上面用的。

    如果方法中处理不了这个异常,就需要将这个异常抛出更高的级别,需要在方法上抛出异常,这就需要用关键字throws,在方法上抛出的异常被调用时可以使用try–catch来捕获和这个异常并处理。主动在方法中抛出异常是throw,在方法上是throws。

    这里就告诉我们需要随时去应对突发状况,算术异常属于运行时异常,这种异常不需要程序抛出,他自己就会抛出,即使程序中不用try–catch去捕获处理,程序遇到这种错误也会停止,但是用了try–catch之后程序捕获之后依旧会继续运行,假设程序异常在意料之中可以不用停止程序执行而是继续往下走,让异常或者错误在catch中给他处理掉就好了。

    方法上使用throws抛出异常,对比上面throws抛出异常运行结果可以看出

    package com.baidu.www.exception;
    
    public class Test2 {
        public static void main(String[] args) {
            try {
                new Test2().test(1,0);
            } catch (ArithmeticException e) {
                System.out.println("程序出错");
            } finally {
            }
    
        }
        public void test(int a, int b) throws ArithmeticException{
            if(b==0){
                throw new ArithmeticException();//主动抛出异常
            }
            System.out.println(a/b);
        }
    }
    /**
     * 程序出错
     *
     * Process finished with exit code 0
     */
    

try、catch是必须要有的东西,可以不要finally,代码中可能出现多种异常,可以写多个catch,捕获不同种类的异常,就像if-else一样层层递进,当然异常要一步一步的扩大,也就是上下要有扩大的关系,也就是Throwable要放在最下面的捕获异常,也就是说要捕获多个异常需要从小到大捕获。finally在后期遇到一些IO流,资源等相关的需要关闭的,就像scanner需要关闭的操作就放在finally中

简单异常处理机制示例

package com.baidu.www.exception;

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        try{//try可以监控区域,也就是在这个代码块区域,产生的异常就可以捕获的到
            System.out.println(a/b);
        }catch (ArithmeticException e){
            /**
             * 捕获异常要先知道异常的类型
             * 也就是如果try中出现了ArithmeticException异常,就执行这个代码块内容
             */
            System.out.println("程序出现异常,变量b不能为0");
        }finally {//最后处理善后工作
            System.out.println("finally");
        }
        /**
         * try、catch是必须要有的东西,可以不要finally
         * finally在后期遇到一些IO流,资源等相关的需要关闭的,就像scanner需要关闭的操作就放在finally中
         */
        
    }
}

多一个异常捕获

package com.baidu.www.exception;

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        try{//try可以监控区域,也就是在这个代码块区域,产生的异常就可以捕获的到
            new Test().a();
        }catch (ArithmeticException e){
            /**
             *catch(想要捕获的异常类型,最高的就是Throwable)中的参数是想要捕获的异常类型
             */
            System.out.println("程序出现异常");
        }catch (Exception e){
            System.out.println("Exception");
        }catch (Throwable e){
            System.out.println("Throwable");
        }
        finally {//最后处理善后工作
            System.out.println("finnally");
        }
        /**
         * try、catch是必须要有的东西,可以不要finally
         * finally在后期遇到一些IO流,资源等相关的需要关闭的,就像scanner需要关闭的操作就放在finally中
         */


    }
    public void a(){b();}
    public void b(){a();}
}
/**
 * Throwable
 * finnally
 *
 * Process finished with exit code 0
 */

IDEA中自动支持自动生成捕获异常代码,选中可能会出现异常的代码,按下快捷键Ctrl+alt+t文章来源地址https://www.toymoban.com/news/detail-695056.html

package com.baidu.www.exception;

public class Test2 {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        //Ctrl+alt+t
        try {
            System.out.println(a/b);
        } catch (Exception e) {
            e.printStackTrace();//这句换是自动生成的是打印错误的栈信息
        } finally {
        }
    }
}

到了这里,关于8.2 异常处理机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 中的异常处理机制

    Java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现意外情形时,系统会自动生成一个Exception对象来通知程序,从而实现将“业务功能实现代码” 和 “错误处理代码” 分离,提供更好的可读性。 如果程序可以顺利完成,那就“一切正常”,

    2024年02月04日
    浏览(30)
  • Java 中的异常类型、异常处理机制、最佳实践

    Java 异常是一种在程序运行时可能出现的错误或异常状况。它们可以由多种因素引起,例如无效输入、网络连接失败或系统资源不足等。 Java 提供了内置的异常类和处理机制,以便在程序出现异常时能够进行恰当的处理和响应。本文将探讨 Java 中的异常类型、异常处理机制以

    2024年02月08日
    浏览(49)
  • 最全最详细的Java异常处理机制

            在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。              程序

    2024年01月23日
    浏览(29)
  • java中的自定义异常处理机制

    在日常开发中我们难免会遇到各种各样的异常问题的发生,但是任何异常如果都在异常可能会出现的地方直接去处理会让业务逻辑显得很臃肿,代码看上去很冗余。在开发Web应用程序时,异常处理是一项非常重要的任务。异常处理可以提高程序的健壮性和稳定性。Java后端开发

    2024年02月08日
    浏览(40)
  • Java中的异常处理机制是什么?

    Java中的异常处理机制是什么? 下滑查看问题答案 Java的异常处理机制是一种强制性的错误处理机制。它是通过使用\\\"try\\\", “catch”, \\\"finally\\\"和\\\"throw\\\"来实现的。以下是这些的简单解释: Try: \\\"try\\\"块包含可能会抛出异常的代码。当在\\\"try\\\"块中发生异常时,程序会立即跳

    2024年02月05日
    浏览(35)
  • 9.Java中异常处理机制是什么

    一:try,catch捕获异常 下面展示一些 内联代码片 。 如果执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,当Java运行时环境收到异常对象时,会寻找能处理该异常对象的catch块,如果找到合适的catch块,则把该异常对象交给该catch块处理,这个过程被称为捕

    2024年02月01日
    浏览(25)
  • Java 中的异常处理机制是怎样的?

    Java 异常处理机制是一种可以帮助程序员识别和处理程序中错误情况的机制。当程序中发生错误或异常情况时,Java 异常处理机制可以使程序在运行时更加健壮,并提供更好的错误处理方式。 Java 异常处理机制主要涉及以下三个方面: 异常的抛出(Throwing Exceptions) 当程序中出

    2024年02月05日
    浏览(33)
  • 【Java高级应用:深入探索Java编程的强大功能,JVM 类加载机制, JVM 内存模型,垃圾回收机制,JVM 字节码执行,异常处理机制】

    本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题 中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:

    2024年01月16日
    浏览(75)
  • 【Java练习题汇总】《第一行代码JAVA》异常处理篇,汇总Java练习题——异常的概念及处理标准格式(try、catch、finally、throws、throw)、断言机制 Assertion ~

    一、填空题 Throwable 下的两个子类是______________ 、______________ 。 ArthmeticException 类表示______________ 异常, ArraysIndexOutOfBoundsException 表示______________ 异常。 一个 try 代码后面必须跟着若干个_______ 代码段或者一个_______ 代码段。 如果一个方法使用了_______ , 则编译器会强制在使用此

    2024年02月16日
    浏览(28)
  • Java语言----异常处理(看了必会)

    目录 一.异常的概述 二.异常类的层次结构和种类 二.异常的基本用法 2.1异常的捕捉 2.2异常处理代码实现 三.抛出异常 3.1 throw 3.2 throws 四.finally的进一步详解 五.自定义异常类 总结 😽个人主页:tq02的博客_CSDN博客-C语言,Java领域博主  🌈理想目标:努力学习,向Java进发,拼搏

    2023年04月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包