学习笔记:java学习(二)

一、异常的继承结构
1.Throwable:顶级父类
2、–Error:系统错误,无法修复
2、–Exception:可以通过编程修复的错误
–编程异常–未运行程序–未通过编译–少写了一个{
–runtimeRxception 运行时异常–通过编译,运行时才报错
–IndexOutOfBoundsException–数组下标越界
–InputMismatchException–输入不匹配异常
–ArithmeticException–算术异常
-----
二、异常的解决方案
方案一:自己解决try–catch
try{
可能会出现异常的代码
}catch(异常类型 异常名){
异常解决方案
}
注意:
1.catch可以嵌套【多种处理情况】,
例题:

package cn.tedu.exception;

import java.util.InputMismatchException;
import java.util.Scanner;

//本例用于异常的入门案例
/**1.不要害怕BUG
 * 2.学会看报错的提示信息,确定自己的错误方向
 * 3、学会看报错的行号信息,确定自己的报错位置
 * 注意:要看自己写的代码*/
public class ExceptionDemo {
    public static void main(String[] args) {
        f1();//调用暴露异常的方法
    }
    /**
     * 异常处理格式:
     * try{
     *     可能会出现异常的代码
     * }catch(异常类型 异常名){
     *     解决方案
     * }*/
    //1.创建一个f1方法用于暴露异常
    public static void f1(){
        //需求:接受用户输入的两个整数,并打印两个数除法的结果
        try{System.out.println("请输入");
        int a = new Scanner(System.in).nextInt();
        System.out.println("请输入");
        int b = new Scanner(System.in).nextInt();
        //输入6和0报错ArithmeticException算术异常,除数不能为0
            //输入小数,报错InputMismatchException输入类型不匹配异常
        //System.out.println("结果"+a/b);
            int c=a/b;
            System.out.println("结果"+c);
        }catch(ArithmeticException e){
            System.out.println("算术异常");
        }catch (InputMismatchException e){
            System.out.println("输入不匹配");
        }
            /*catch (Exception e){
             e.printStackTrace();
            System.out.println("错误");
        }*/finally {
            System.out.println("程序执行完毕");
        }
        /**try-catch可以嵌套的,如果有多种异常类型需要分别处理的话
         * 如果不需要特殊处理,只需要处理,那就不需要嵌套
         * 将所有异常的子类型统一看作父亲类型Exception来处理
         * 提供通用的解决方案,这是多态最为经典的一种用法*/
    }
}

方案二:向上抛出–不自己解决
格式:在方法定义的两个括号之间:throws异常类型1,异常类型2
注意:
1、一个方法会抛出异常,谁调用这个方法,谁就需要处理【捕获或者抛出】这个异常
2、我们一定要在main()调用之前处理掉异常,因为没人处理。
例题:

  try {
           f3();
       }catch (Exception e){
           System.out.println("出错啦");
       }
 //3.创建一个抛出异常的方法
    /**异常抛出的格式:在小括号与大括号之间写throws
     * 如有多个异常输入,即可*/
    private static void f3() throws InputMismatchException,ArithmeticException,Exception{
        //3.1复写f1代码
        System.out.println("请输入");
        int a = new Scanner(System.in).nextInt();
        System.out.println("请输入");
        int b = new Scanner(System.in).nextInt();
        //输入6和0报错ArithmeticException算术异常,除数不能为0
        //输入小数,报错InputMismatchException输入类型不匹配异常
        //System.out.println("结果"+a/b);
        int c=a/b;
        System.out.println("结果"+c);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值