如果我必须根据您发布的代码片段猜测发生了什么,可能是因为您尝试从静态方法中抛出ParenthesisException而导致错误.
在Java中,在另一个类中定义的类自动存储指向创建它们的对象的指针.也就是说,ParenthesisException有一个隐式指针,它返回到使用new创建的封闭类.这意味着,特别是,您无法在静态方法内部构造新的ParenthesisException,因为没有此指针可用于引用包含的类.
要解决这个问题,你应该使ParenthesisException成为一个静态的内部类,如下所示:
private static class ParenthesisException extends Throwable
{
public ParenthesisException(){}
public String strErrMsg()
{
return "ERROR: Every '(' needs a matching ')'";
}
}
私有之后的静态表示ParenthesisException不会将引用保存回封闭对象,这可能是您想要的.它还意味着您可以在静态方法中创建新的ParenthesisExceptions.
希望这个猜测是正确的,希望这有帮助!