2021-04-24笔记

try cath finally 块

  try{
            System.out.println(divisor / dividend);//ArithmeticException    算数异常
        }catch (Exception e){
	        e.printStackTrace();
            System.out.println("捕获到一个异常");
        }finally {
            System.out.println("不管怎" +
                    "样都会执行这个代码");
        }

1:如果try块所有语言正常执行完毕,不会发生异常,南无catch所有语句将被忽略

2:如果try块执行中遇到异常且这个异常与catch异常类型匹配,那么try其余代码将被忽略catch块会被执行

3:如果try语句在执行中遇到异常,而抛出异常没有在catch中声明,程序会立刻退出

抛出异常throws和throw

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/27 15:31
 */
public class Demo03 {
    public static void main(String[] args) throws Exception{       //继续向上声明,不处理
        /*try {
            steSex("双性人");
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("非男非女");
        }*/
        steSex("afwarf");
    }
    public static void steSex(String sex) throws Exception{  //声明异常
        if (!(sex.equals("男")|| sex.equals("女"))){
           throw new Exception("处理不了的异常,扔出去");  //抛出异常
        }
    }
}

throw和throws区别

1作用不同:throw用于在程序中抛出异常;throw用于声明在该方法内抛出异常

2使用位置不同:throw位于方法内部可以做反复语句使用;throws必须跟在方法参数后面,不能单独使用

3内容不同:throw抛出一个异常对象,而且只能是一个,throws后面跟异常类,而且可以跟多个异常类

自定义异常

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/27 15:46
 */
public class Demo04 {
    public static void main(String[] args){
        try {
            steSex("双性人");
        }catch (Exception e){
            System.out.println("调用者说处理过了");
        }
    }
    public static void steSex(String sex) throws SexException{  //声明异常
        if (!(sex.equals("男")|| sex.equals("女"))){
            throw new SexException("发现一个不对劲的");  //抛出异常
        }
    }
}

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/27 15:44
 */
public class SexException extends Exception {
    public SexException(){
    }
    public SexException(String message){
        System.out.println(message);
        System.out.println("自定义的异常,知道非男飞女,但是没办法处理");
        System.out.println("..........");
    }
}

注意

1:自定义异常类一般是以Exception结尾

2:自定义异常类,必须继承Exception或RuntimeException

​ 2.1:继承Exception,那么自定义的异常类就是一个编译期异常,如果方法内部抛出了编译期异常,就不许处理这个异常,要么throws,要么try···caych

​ 2.2:继承RuntimeException,那么自定义的异常类就是一个运行期异常,无需处理,交给虚拟机处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值