异常

来源:互联网 发布:马云放弃淘宝c店 编辑:程序博客网 时间:2024/06/05 07:42

异常概念

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,打印出正常运算结果
原创粉丝点击