java打卡day11——异常

异常

  1. 运行时异常:RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常(如:数组索引越界异常)
  2. 编译时异常:编译阶段就会出现错误提醒的。(如:日期解析异常)

自定义异常

  1. java无法为这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了。
    在这里插入图片描述
public static void main(String[] args) {
        try {
            saveAge(223);
            System.out.println("底层执行成功!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("底层出现了bug");

        }

        try {
            saveAge2(28);
        } catch (AgeIllegalException e) {
            e.printStackTrace();
            System.out.println("saveAge2底层执行出现bug");
        }
    }

    public static void saveAge2(int age) throws AgeIllegalException {
        if(age>0&&age<150){
            System.out.println("年龄被成功保存: "+age);
        }else {
            // 用一个异常对象封装这个问题
            throw new AgeIllegalException("/age is illegal, your age is " + age);
        }
    }

    public static void saveAge(int age) {
        if(age>0&&age<150){
            System.out.println("年龄被成功保存: "+age);
        }else {
            // 用一个异常对象封装这个问题
            throw new AgeIllegalRuntimeException("/age is illegal, your age is " + age);
        }
    }

异常的常见处理方法

  1. 捕获异常,记录异常并响应合适的信息给用户。
public static void main(String[] args) {
        try {
            test1();
        } catch (FileNotFoundException e) {
            System.out.println("您要找的文件不存在!");
            e.printStackTrace();
        } catch (ParseException e) {
            System.out.println("您要解析的时间有问题。");
            e.printStackTrace();
        }


    }

    public static void test1() throws FileNotFoundException, ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse("2028-11-11 10:24");
        System.out.println(d);

        test2();
    }

    public static void test2() throws FileNotFoundException {
        // 读取文件
        InputStream is = new FileInputStream("D:/meinv.png");

    }

运行结果:
在这里插入图片描述
2. 捕获异常,尝试重新修复。

public static void main(String[] args) {
        while (true) {
            try {
                System.out.println(getMoney());
                break;
            } catch (Exception e) {
                System.out.println("请你输入合法的数字!!");
            }
        }

    }

    public static double getMoney(){
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请你输入合适的价格:");
            double money = sc.nextDouble();
            if(money >= 0){
                return money;
            }else {
                System.out.println("您输入的价格是不合适的!");
            }
        }
    }

在这里插入图片描述

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为2023年的OD机试题目包含多个部分,其中有一个是“异常打卡Java”,是一道Java编程题目。 题目要求程序实现一个打卡系统,包含登录、签到、签退、查询历史记录等功能。要求使用Java语言编写,同时需要对程序中可能出现的异常进行处理,确保程序的稳定性和安全性。 对于这道题目,我们可以从以下几个方面进行思考和实现: 第一,需要使用Java语言编写程序,其中涉及到Java基础语法、数据类型、运算符、流程控制等知识点。需要熟悉Java编程语言的基本规则和开发环境,如JDK、Eclipse等。 第二,需要实现一个打卡系统,包括用户登录、签到、签退、查询历史记录等功能。这需要用到Java的面向对象编程思想,通过定义类、对象、方法等来实现系统的功能。 第三,需要对程序中可能出现的异常进行处理,通过try-catch语句等方式来捕获异常,并进行相应的处理。需要能够识别和处理常见的异常类型,如空指针异常、数组越界异常等。 在实现上述功能的同时,还需要考虑程序的稳定性和安全性,例如防止SQL注入、XSS攻击等安全问题。需要注意代码实现的效率和可读性,注重代码规范和注释,以便后续维护和更新。 总之,在华为OD2023机试中的异常打卡Java这一题目中,我们需要综合运用Java编程知识和面向对象思想,能够处理程序中可能发生的异常,确保程序的稳定性和安全性。需要注重代码防御和安全性,同时需要考虑代码的可读性和规范性。这是一道具有一定难度和挑战性的Java编程题目,但通过认真学习和练习,相信大家可以取得好的成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值