首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java中如何创建自定义异常Create Custom Exception

    马克-to-win:我们可以创建自己的异常:checked或unchecked异常都可以, 规则如前面我们所介绍,反正如果是checked异常,则必须或者throws,或者catch。到底哪个好,各路架构师大神的意见是50对50。见我本章后面的附录。sun公司开始说,checked异常可以使你的系统异常语义表达很清楚。但很多人经过一段时间的实践后,马上表示了异议。checked异常是java独有的,但连Thinking in java的作者都表示,checked异常作为一种java特有的实验行为,不是很成功。我个人的意见是:为了达到解耦的目的,最好继承unchecked异常。否则你各种业务方法都得throws。将来业务方法一旦改变,还得考虑处理这些throws。(新手可忽略)比如你的业务方法a里如果新加了一句throw受检异常,而且你还没有catch,则调用你这个a方法的客户程序将必须或者catch或者throws,反正必须做出相应调整。如果当初你的a方法里只是抛出一个非受检异常,客户程序就不用做任何调整了。

    03

    混沌工程中数据库调用延迟

    混沌工程的核心是通过实验的方式来验证系统在稳定下下它的不稳定性,从而通过混沌工程实验的方式来模拟这种情况并给出合理的解决方案,所以它最重要的不是混沌实验,而是实验背后的解决方案。业内最早实践混沌工程的公司是Netfix,混沌工程具体它的定义为:“混沌工程是一门在系统上进行实验的科学,目的是建立系统抵御生产环境中失控情况的能力以及信心”。比如在生产环境中数据库的实例突然瘫痪,云服务器的实例突然消失以及底层服务出现雪崩等等一系列的故障情况下,这个时候整个系统层面需要考虑的是出现这种极端以及很平常的故障下,如何使用技术的手段来保障系统依然能够给客户提供价值从而保障系统的可用性,特别是在分布式架构下服务复杂的调用链以及涉及众多中间件,更加需要考虑在异常的情况下系统的伸缩性和高可用性。

    03

    Exception和Error有什么区别吗

    Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。 Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。 Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序(比如 JVM 自身)处于非正常的、不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如 OutOfMemoryError 之类,都是 Error 的子类。 Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。不可查的 Error,是 Throwable 不是 Exception。 不检查异常就是所谓的运行时异常,类似 NullPointerException、ArrayIndexOutOfBoundsException 之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求。

    04

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券