Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展java中的可丢弃vs异常_Java - Fatal编程技术网

扩展java中的可丢弃vs异常

扩展java中的可丢弃vs异常,java,Java,在创建我自己的异常时,在决定扩展哪个超类时,我需要考虑哪些好处 它们各自的优缺点是什么 class MyException extends Exception vs 第一个捕获Throwable的所有子类(包括Exception和Error),第二个捕获Exception类的所有子类 错误在编程上以任何方式都是不可恢复的,就捕获而言,应该避免错误,但出于日志记录的目的除外,而日志记录又会再次抛出错误。错误不应该被捕获,除非您正在尝试某种线程的“捕获所有”级别 异常可通过编程方式恢复。它的子类

在创建我自己的异常时,在决定扩展哪个超类时,我需要考虑哪些好处

它们各自的优缺点是什么

class MyException extends Exception 
vs


第一个捕获Throwable的所有子类(包括Exception和Error),第二个捕获Exception类的所有子类

错误在编程上以任何方式都是不可恢复的,就捕获而言,应该避免错误,但出于日志记录的目的除外,而日志记录又会再次抛出错误。错误不应该被捕获,除非您正在尝试某种线程的“捕获所有”级别


异常可通过编程方式恢复。它的子类RuntimeException表示编程错误,通常也不会被捕获。

通过捕获Throwable,它包括子类错误的内容。通常情况下,您不应该这样做,除非您希望在线程的最高“捕获所有”级别记录或以其他方式绝对处理可能出错的所有内容。在框架类型的应用程序(例如,应用程序服务器或测试框架)中更为典型,在该应用程序中,它可以运行未知代码,并且尽可能不受该代码出错的影响。
请参见

它必须从异常扩展,Throwable必须仅针对Java虚拟机错误和关键操作系统错误(如内存堆空间或系统块耗尽)实施。

看看这个:或者甚至可能是这个:请参见这里,您不应该有理由直接扩展
Throwable
。您可能扩展了
异常
运行时异常
错误
(或已存在的子类),您可能误读了问题。它不是关于捕捉异常;这是关于创建异常类的。如果您正在创建自定义异常,请选择exception而不是Throwable。@USer22999299询问了子类化
exception
Throwable
的问题,但没有捕捉到它们。
class MyException extends Throwable