Java基础面试题之基础(四)

错误和异常有什么区别?CheckedException和的的的的的RuntimeException的有什么区别?

在这里插入图片描述
在这里插入图片描述

  1. 错误(错误),表示系统级的错误和程序不必处理的异常,是Java运行环境中的内部错误或者硬件问题
  • 内存不足 - 对于这种错误程序基本无能为力,除了退出别无选择,因为它是由Java的虚拟机抛出的。
  1. 异常(异常)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的.Exception又分为运行时异常,受检查异常。
  • RuntimeException(运行时异常),表示无法让程序恢复的异常,导致的原因通常是因为执行了错误的操作,建议终止逻辑,因此,编译器不检查这些异常 .- CheckedException(受检查) ))异常),是表示程序可以处理的异常,也即表示程序可以修复(由程序自己接受异常并且做出处理),所以称之为受检查异常。

异常的使用的注意地方?

  1. 不要将异常处理用于正常的控制流(设计良好的 API 不应该强迫它的调用者为了正常的控制流而使用异常)。
  2. 对可以恢复的情况使用受检异常,对编程错误使用运行时异常。
  3. 避免不必要的使用受检异常(可以通过一些状态检测手段来避免异常的发生)。
  4. 优先使用标准的异常。
  5. 每个方法抛出的异常都要有文档。
  6. 保持异常的原子性
  7. 不要在 catch 中忽略掉捕获到的异常。

Throwable 类常用方法?

  1. getMessage() 方法:返回异常发生时的详细信息。
  2. getCause() 方法:获得导致当前 Throwable 异常的 Throwable 异常。
  3. getStackTrace() 方法:获得 Throwable 对象封装的异常信息。
  4. printStackTrace() 方法:在控制台上打印。

getMessage

    public class ThrowableDemo {
        public static void main(String[] args) throws Throwable {

            try {
                //调用方法
                newException();
            } catch (Throwable e) {
                System.err.println(e);
                // 返回此可抛出实例的详细信息字符串
                System.out.println(e.getMessage());
            }
        }

        public static void newException() throws Exception {
            System.out.println("This is newException() function");
            throw new Exception("new Exception...");
        }
    }

getCause

    public class ThrowableDemo {
        public static void main(String[] args) throws Throwable {

            try {
                newException();
            } catch(Throwable e) {
                System.err.println(e);
                // returns null as the cause is nonexistent or unknown.
                System.err.println("Cause = " + e.getCaus
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值