当前位置: 首页 > article >正文

编程小记1 throw new RuntimeException(“错误信息“);

一、概念

  throw new RuntimeException 是 Java 中用于抛出运行时异常的一种方式。RuntimeException 是 Java 中的一种异常类型,它继承自 Exception 类,但不同于 ExceptionRuntimeException未经检查的异常(unchecked exception),意味着编译器不会强制要求你处理它。

二、基本语法

throw new RuntimeException("错误信息");
  • new RuntimeException("错误信息") 创建一个新的 RuntimeException 对象,并将错误信息传递给构造函数。
  • throw 用于显式抛出异常。

三、使用场景

        可以在遇到特定错误或不符合业务逻辑的情况下抛出 RuntimeException。比如,某个条件不成立时,抛出运行时异常来终止程序或提示错误。

1.基本用法

public class Main {
    public static void main(String[] args) {
        int age = -1;
        
        if (age < 0) {
            // 抛出运行时异常,告知年龄不能为负数
            throw new RuntimeException("年龄不能为负数");
        }
        
        System.out.println("年龄:" + age);
    }
}

 2.在方法中抛出 RuntimeException

public class Main {
    public static void main(String[] args) {
        try {
            int result = divide(10, 0);  // 故意做除零操作
            System.out.println("结果:" + result);
        } catch (RuntimeException e) {
            System.out.println("捕获异常:" + e.getMessage());
        }
    }
    
    public static int divide(int a, int b) {
        if (b == 0) {
            // 抛出除零异常
            throw new RuntimeException("除数不能为零");
        }
        return a / b;
    }
}

3.自定义 RuntimeException 子类

        可以继承 RuntimeException 来定义你自己的运行时异常类型。

// 自定义一个运行时异常
class InvalidAgeException extends RuntimeException {
    public InvalidAgeException(String message) {
        super(message);
    }
}

public class Main {
    public static void main(String[] args) {
        int age = -5;
        
        if (age < 0) {
            // 抛出自定义的运行时异常
            throw new InvalidAgeException("年龄不能为负数");
        }
        
        System.out.println("年龄:" + age);
    }
}

四、异常的传播

        运行时异常通常不会被强制捕获(不像检查异常 IOExceptionSQLException)。如果抛出 RuntimeException,并且没有捕获它,程序将终止,或者异常会传播到调用栈的上层。

五、总结

  • throw new RuntimeException("错误信息"); 用于抛出一个运行时异常,可以附带错误信息。
  • RuntimeException 是未经检查的异常,通常用于表示程序逻辑错误或运行时的异常情况。
  • 如果希望抛出特定类型的运行时异常,可以自定义异常类。

http://www.kler.cn/a/401168.html

相关文章:

  • 多品牌摄像机视频平台EasyCVR视频融合平台+应急布控球:打造城市安全监控新体系
  • 【后端】版本控制
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit
  • 51单片机基础01 单片机最小系统
  • 使用Python编写一个简单的网站爬虫,从网站上抓取新闻标题和链接。
  • 数据库基本概念学习笔记
  • 跨平台WPF框架Avalonia教程 六
  • 缓存工具类编写
  • docker run怎么设置 entry point sleep?
  • 【AIGC】ChatGPT提示词Prompt解析:文章创作大师
  • EMNLP 2024 | 大语言模型的内部知识机理
  • 高效管理 SSH 免密码登录:多客户端与多服务器实践指南20241118
  • 鲸鱼机器人和乐高机器人的比较
  • 搭建vue-electron项目
  • 自动驾驶系统研发系列—智能驾驶核心功能:IHC如何提升夜间驾驶体验?
  • 数造科技亮相第26届高交会并接受媒体采访,以数据智能赋能未来
  • Oracle收缩表空间的简单方法
  • 每日OJ题_牛客_dd爱旋转_模拟_C++_Java
  • 数据结构 【单链表练习】
  • RPA真的是人工智能吗?
  • 二刷代码随想录第七天
  • git commit
  • 如何将几个音频合成一个音频?非常简单的几种合成方法
  • Pandas-5:数据分析与统计
  • MongoDB的常用命令(数据库操作、集合操作、文档操作)
  • CentOS 7.9 搭建本地Yum源