栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

异常的类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

异常的类型

1.异常的顶级父类:Throwable
    --Error:系统错误,通过java无法修复
    --Exception:可以修复的错误
           --RunTimeException:运行时异常
        --IndexOutOfboundsException--数组下标越界
        --InputMismatchExecption--输入不匹配异常
        --ArithmeticException--算数异常
        --ClassCastException :编译期异常
        --ClassNotFoundException:
    --Unhandled exception: java.lang.Exception未处理的异常


2.异常的处理方式
方案一:自己解决try-catch
    try-catch可以嵌套的,如果有多种异常需要分别处理的话
    如果不需要特殊处理,只需要处理,那就不需要嵌套
    将所有异常的子类同意看作父类型Exception来处理
    提供公共的处理方案,这是多态最为经典的处理方案

格式
try{
      可能出现的异常代码
}catch(异常类型  异常名称){
处理异常的提示
}


方案二:向上抛出--不自己解决
在方法定义的两个括号之间:throws异常类型1,异常类型2
注意事项:
如果一个方法抛出异常,那么谁调用这个方法,谁就需要处理[捕获/抛出]这个异常
我们一定要在main()调用之前解决掉异常不能把问题抛给main(),以为没人解决


    
代码的实现------------


package cn.tedu.array;

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



public class ExceptionDemo {
    public static void main(String[] args){
     //  f1();//调用暴露异常的方法
        //f2();//通过捕获处理的方式提前
        //f3();
        method();
    }

    private static void method(){
        try {
            f3();
        }catch (Exception e){
            System.out.println("请正确玩游戏");
        }

    }
    //创建一个抛出异常的方法--交给别人解决
   
    //private static void f3()throws ArithmeticException, InputMismatchException,Exception{
        private static void f3()throws Exception{
        //3.1复写之前的代码
        System.out.println("请输入你要计算的一个整数");
        int a=new Scanner(System.in).nextInt();
        System.out.println("请输入你要输入的第二个整数");
        int b=new Scanner(System.in).nextInt();
        System.out.println(a/b);
    }

    //2.创建一个用于捕捉异常的方法
    private static void f2() {
        try{
            System.out.println("请输入你要计算的一个整数");
            int a=new Scanner(System.in).nextInt();
            System.out.println("请输入你要输入的第二个整数");
            int b=new Scanner(System.in).nextInt();
            System.out.println(a/b);
        }
//        catch (ArithmeticException e){
//            System.out.println("除数不能为0");
//        }
//        catch (InputMismatchException e){
//            System.out.println("请输入正确的类型");
//        }
        catch (Exception e){
            System.out.println("请输入正确的类型");
        }
    }

    //创建一个f1()用来暴露异常
    private static void f1() {
        //需求:接受用户输入的两个整数,并打印两个数的结果
        System.out.println("请输入你要计算的一个整数");
        int a=new Scanner(System.in).nextInt();
        System.out.println("请输入你要输入的第二个整数");
        int b=new Scanner(System.in).nextInt();
        System.out.println(a/b);
        //输入6与0,报错:ArithmeticException算数异常,原因除数不能为0
        //输入3与4.4,报错:InputMismatchException输入不匹配异常
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/867985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号