作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试打印出导致 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/
我是一名优秀的程序员,十分优秀!