zoukankan      html  css  js  c++  java
  • java_基础_异常

    之前只是了解的最基础的异常形式,没有过多的深入

    今天因为一些原因了解了一下

    下面来说说异常的几种形式

    1.try-catch语句块

    代码示例

    class test{
        public static void main(String[] args) {
            try {
                int a = 1/0;
                System.out.println(a);
            }catch(ArithmeticException e) {
                e.printStackTrace();
                System.out.println(e);
            }finally{
    //final语句块中最后都会执行(不管有没有异常)
        } } }

    因为分母不能为零,所以此处会报出一个算术异常,这就是try-catch语句块基本形式了

    2.抛出异常

    代码示例:

    class test{
        public static void main(String[] args) throws ArithmeticException{
                int a = 1/0;
                System.out.println(a);
        }
    }

    此处是将异常抛出了,通俗来讲,就是把异常丢给了上一级,由上一级来处理

    3.语句中某种条件下抛出异常

    代码示例:

    class test{
        public static void main(String[] args) {
            try {
                int a = 1;
                int b = 0;
                if(b==0)throw new ArithmeticException("the denominator connot be zero");
                System.out.println(a);
            }catch(ArithmeticException e) {
                e.printStackTrace();
                System.out.println(e);
                System.out.println(e.getMessage());
            }
        }
    }

    此处,是在判断分母为零之后手动抛出的异常,这种异常可以自定义一句抛出的时候的语句,在catch语句中利用e.getMessage()方法可以获取自定义的语句,直接输出e对象,就是输出异常加上自定义语句,如上示例代码输出的是

    java.lang.ArithmeticException: the denominator connot be zero
        at Excertion.Test.main(Test.java:12)
    java.lang.ArithmeticException: the denominator connot be zero
    the denominator connot be zero

    这种方法更灵活

    4.自定义异常

    这种方法就是创建一个异常类,此类必须集成Exception父类,类中可以没有东西,也可以重写父类方法

    示例代码:

    class MyException extends Exception{
        private String message = "";
        
        MyException(String str){
            this.message+=str;
        }
        @Override
        public String getMessage() {
            // TODO 自动生成的方法存根
            return this.message;
        }
        
    }
    
    class test{
        public static void main(String[] args) {
            try {
                int a = 1;
                int b = 0;
                if(b==0)throw new MyException("the denominator connot be zero");
                System.out.println(a);
            }catch(MyException e) {
                System.out.println(e);
            }
        }
    }

    详细如上代码,此不再赘述

    注:在try-catch语句块中错误出错代码或者手动抛出异常代码之后的语句不会被执行,但是在try-catch语句块之外之后的语句块会被执行

    希望对大家有所帮助

    以上

  • 相关阅读:
    用getBoundingClientRect()来获取页面元素的位置
    asp.net 发送邮件
    MVC5笔记【一】
    WEB前端组件思想【日历】
    WEB前端组件思想【分页】
    【转】前端进阶之路:如何高质量完成产品需求开发
    KindeEditor图片上传插件用法
    jQuery Post 提交内容中有标签报错
    【转发】彻底理解 JS 中 this 的指向
    chrome扩展程序开发之在目标页面运行自己的JS
  • 原文地址:https://www.cnblogs.com/lavender-pansy/p/10776391.html
Copyright © 2011-2022 走看看