我有这些类:
public class NegativeNumberException extends Exception{
NegativeNumberException()
{
System.out.println("Don't pass negative values!");
}
public String getMessage()
{
String message="NegativeNumberException";
return message;
}
}
public class Main {
static void test(int n) throws NegativeNumberException
{
if(n<0) throw new NegativeNumberException();
else System.out.println("Success");
}
public static void main(String[] args) {
try
{
test(-5);
}
catch(NegativeNumberException nne)
{
System.out.println(nne);
}
}
}
这是结果:
Dont pass negative values!
NegativeNumberException: NegativeNumberException
我原本期望它只会打印一次NegativeNumberException
,但我猜如果我重写了getMessage方法,那么无论如何它都会被执行,是这样吗?还是有其他情况发生了?
getMessage
的结果。将getMessage
更改为其他内容,您将看到差异。 - Silvio MayoloNegativeNumberException
和getMessage
中的任何内容,尽管我没有像nne.getMessage()
这样调用它? - Rafik BouloudenegetMessage
。你调用的是println
,它会调用toString
,然后再调用getMessage
并对其进行自己的操作。 - Silvio Mayolo