gpt4 book ai didi

java - 如何在同一类中的静态方法中抛出异常

转载 作者:行者123 更新时间:2023-12-01 06:38:54 27 4
gpt4 key购买 nike

Example1Exception 和Example1Method 一起属于同一文件。将它们放在单独的文件中是没有意义的。

public class Example1
{
public class Example1Exception extends Exception
{
public Example1Exception(String message)
{
super(message);
}
}

public static void Example1Method() throws Example1Exception
{
throw new Example1Exception("hello"); //error: non-static variable this cannot be referenced from a static context
}
}

如何在Example1Method中抛出Example1Exception?

最佳答案

(假设您实际上使用类声明来声明 Example1Exception...,并且方法声明也是固定的...)

Example1Exception 是一个内部类 - 它需要对外部类的封闭实例的引用。

选项:

  • 提供引用(但为什么?)
  • 通过更改声明以包含 static,使其成为嵌套(但非内部)类
  • 使其成为顶级类(class)

就我个人而言,我通常会选择最后一个选项 - 为什么你希望它是一个嵌套类?为什么将它们放在单独的文件中没有意义?除了增加一些复杂性之外,将其作为嵌套类还能获得什么好处?您真的希望人们声明 catch (Example1.Example1Exception ex) { ... }

如果您真的希望它被嵌套,您可能只是希望它成为一个非内部类 - 您没有使用隐式需要的引用Example1 的实例。

关于java - 如何在同一类中的静态方法中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21187640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com