异常

异常概念

1.程序不管产生什么异常都会导致程序中断return,这就需要我们去处理异常,保证程序能运行到最后,保证了程序的健壮性,runtimeException可以不用处理,程序不会报错,但还是会中断
2.Throwable所有错误以及异常的父类
    |-Error
    |-Exception
        |-RuntimeException
        |-NUllPointException空指针异常,对象没有实例化
        |-IndexOfBound下标越界
        |-ClassCastException类转换异常
3.处理异常有两种方法:
    throws:在方法名后面,表示该方法可能会产生异常,自己如果不try可以选择抛出去,如果调用者不去try...catch...程序依然崩溃
    try...catch...catch...finallytry代码块如果没有错误,catch代码块被忽略,如果有异常,从上到下逐个匹配catch代码块,匹配到执行代码块里的内容,匹配不到程序中断,finally是程序必须执行的代码块,try代码块中的return执行前先执行finally,程序崩溃前也要先执行finally,除非杀死进程Sysotem.exit(0);一般多个catch范围小的先写
4.自定义异常:throw可以在程序你喜欢的任意位置抛出(new)一个异常
5.父类方法抛异常,子类覆盖方法必须抛该异常或该异常的子类;父类方法抛多个异常,子类方法要抛父类异常的子集;父类没抛异常,子类不允许抛异常

小练习

1.写一个login方法,形参账户名密码,判断如果不是zhangsan和123456,则抛出异常,异常信息为账户名或密码不正确,main方法从键盘输入账户名和密码,调用login方法,捕获(try)并处理异常(catch)
    package com.ccb;
    import java.util.Scanner;
    public class Test {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.println("输入账户名:");
            String name = input.next();
            System.out.println("输入密码:");
            String password = input.next();
            Test t = new Test();
            try {
                System.out.println(t.login(name,password));
            } catch (Exception e) {
                System.out.println("账户名或者密码不正确");
            }
            input.close();
        }
         public boolean login(String name,String password){
             if (name.equals("zhangsan") &&
                    password.equals("123456")) {
                return true;
            }
            throw new ArithmeticException();
        }
    }
2.建立一个三角形类,其中有三条边长,如果构建的三条边不能组成一个三角形,抛出非法参数
3.创建一个点类型xy,输入4个点,判断是否能组成一个四边形,如果不能,抛出非法参数异常
4.默认10道算术题,循环判断是否错误,错误抛异常,打印getMessage,打印出正常运算结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值