Java异常的知识讲解

创建一个 Java 数组,然后访问不存在的数组数据,看看会抛出什么异常:

请添加图片描述

我们可以看到抛出了一个ArrayIndexOutOfBoundsException:异常:数组下标越界

执行代码 System.out.println(1 / 0),看看会抛出什么异常。

请添加图片描述

现在抛出了一个ArithmeticException: / by zero异常

Thrown when an exceptional arithmetic condition has occurred. 
For example, an integer "divide by zero" throws an instance of this class.
当出现异常的运算条件时,抛出此异常。
例如,一个整数“除以零”时,抛出此类的一个实例。

自定义异常:

package 任务5;

/**
 * @author ${范涛之}
 * @Description
 * @create 2021-11-18 0:10
 */
public class MyExpection {

    public static void main(String[] args) throws GenderException {
        Human human = new Human();
        human.setGender("牛");



    }


    public static class Human{
        static String gender;

        public static void setGender(String s) throws GenderException{ //这里抛出了自己的异常

            GenderException g= new  GenderException();

            if (!s.equals("男") && !s.equals("女")){

//                throw new GenderException("");


//                throw new GenderException("你输入了错误的性别");


//                throw new GenderException(g,"你输入了错误的性别");


                throw new GenderException("你输入了错误的性别");


            }
            else {
                gender = s;

            }

        }

    }






    public static class GenderException extends Exception{

        /**
         * 构造方法1:无异常
         */
        public GenderException(){
            super();
        }

        /**
         * 构造方法二:有字符串异常
         * @param message
         */
        public GenderException(String message){
            super(message);
        }

        /**
         * 构造方法三:有字符串和Throwable类型参数,表明异常可以抛出
         * @param message
         * @param cause
         */
        public GenderException(Throwable cause,String message){
            super(message,cause);
        }

        /**
         * 构造方法四:有Throwable类型参数,表明异常可以抛出
         * @param cause
         */
        public GenderException(Throwable cause){
            super(cause);
        }






    }





}

不同的输出结果:

请添加图片描述
请添加图片描述
请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

water-之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值