Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 异常子类中'Super'关键字的效果_Java_Super - Fatal编程技术网

Java 异常子类中'Super'关键字的效果

Java 异常子类中'Super'关键字的效果,java,super,Java,Super,这是示例程序中的第一节课。我不明白的是为什么我们使用超级关键词。我知道with从exception类扩展了这个类,但我不理解如何为exception创建方法。当我们捕获异常时会发生什么 我得到了我问题的答案 super只需将方法ExceptionString消息调用到 使用指定的详细信息构造新异常。 这是一个创建我们自己的异常类的示例。您的问题与异常无关 类的存在是为了让您可以使用它们,或者在大多数情况下扩展它们,使其对您自己的利益更有用。Exception只是标准Java库中的另一个类,根据您

这是示例程序中的第一节课。我不明白的是为什么我们使用超级关键词。我知道with从exception类扩展了这个类,但我不理解如何为exception创建方法。当我们捕获异常时会发生什么

我得到了我问题的答案 super只需将方法ExceptionString消息调用到 使用指定的详细信息构造新异常。
这是一个创建我们自己的异常类的示例。

您的问题与异常无关

类的存在是为了让您可以使用它们,或者在大多数情况下扩展它们,使其对您自己的利益更有用。Exception只是标准Java库中的另一个类,根据您试图建模的异常类型,它可以被选中或取消选中。请阅读中的异常

超级关键字的使用在SO和其他Java程序员的网站上一直是一个热门话题。我不会再重复这些话来污染这条线。总之,你想要子类,你需要超级-不需要,不使用

如果捕捉到异常会发生什么-好吧,使用try{…}catchException e块,实际上就是捕捉异常对象。让我们假设您自己的异常类称为DontKnowException。如果您执行以下操作:

public class AccountException extends Exception {
    public AccountException(String str) {
      super(str);
     }
   }
如果您仔细查看代码,您在哪里说您正在捕获DontKnowException对象?答案是——没有。但是您是否正在捕获异常对象-是的,您正在捕获异常对象。一个世俗的例子可能很愚蠢——你爷爷有一辆自行车,但没有汽车。你爸爸有一辆自行车和一辆汽车。爷爷,能把你的车给我吗?不,我没有

正如Java SO用户也会同意的那样,如果您的异常是未检查的类别,则不需要执行try-catch。那么,如果您的异常未被选中,为什么还要麻烦使用super呢??那也许是个好习惯


如果您坚持编写自己的异常类,我强烈建议您了解是否正在处理未检查/检查的异常。编写类之后,请尝试捕获异常类对象,而不是超类异常。

使用super调用超类构造函数。这与异常无关。

你认为super与异常处理有什么关系?@SotiriosDelimanolis这个类是从异常扩展而来的,这就是为什么我认为它与异常处理有关。
try {
    // My code

} catch (Exception e) {
   // Print stack trace
   // Do whatever you want using "Exception" object e
}