gpt4 book ai didi

java - 如何用实际导致异常的消息替换异常消息?

转载 作者:行者123 更新时间:2023-12-01 16:49:22 25 4
gpt4 key购买 nike

我正在尝试打印出导致 catch 内的 ArrayIndexOutOfBoundsException 的原因。我只允许输入单个字符或数字,任何空格都会触发此异常。但是,使用 getStackTrace 时,我收到“[Ljava.lang.StackTraceElement;@66d3c617”错误。

我也尝试过 getCause();但它返回 null。

有什么建议吗?

try{
for (int i=0; i < word.length(); i++)
counts[word.charAt(i)-'A']++;

...

catch (ArrayIndexOutOfBoundsException ex){
System.out.println("Not a letter " + ex.getStackTrace());

最佳答案

您可能正在寻找的是 getMessage() ,

System.out.println("Not a letter " + ex.getMessage());

调用getStackTrace()返回StackTraceElement[]类型的对象,不能转换为字符串。

要打印整个堆栈跟踪,请使用:

ex.printStackTrace(); // print to stderr

或者如果您想迭代调用链,例如:

for ( StackTraceElement element : ex.getStackTrace() ){

System.out.println( element.toString() );
}

关于java - 如何用实际导致异常的消息替换异常消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43667632/

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