假设在您的程序中,您可能会收到IndexOutOfBoundsException。我正在以下列方式处理它:
try{
//throws an IndexOutOfBoundsException during runtime
}catch(IndexOutOfBoundsException ex){
System.err.println(ex);
}
这只会显示 java.lang.IndexOutOfBoundsException 。但是我希望显示一个详细的错误消息(它不会终止程序),就像java给我们的那些消息(lineNumber,fileName等),当我们不处理错误并因此终止程序时。 / p>
答案 0 :(得分:3)
使用[Display(Name = "Label Me This")]
public Nullable<decimal> MyDecimal { get; set; }
方法打印例外:
ex.printStackTrace()
如果您在不希望控制台输出的环境中运行,请调用try {
int[] x = new int[1];
x[2] = 5;
} catch (IndexOutOfBoundsException ex) {
ex.printStackTrace();
}
System.err.println("Program completed successfully");
,并以与程序用户界面一致的方式显示元素。
答案 1 :(得分:3)
在Java中,您可以在任何异常对象上使用DataTemplate
来获取由Java打印的堆栈跟踪。在你的情况下,最小的:
printStackTrace
这会将堆栈跟踪打印到try {
// Throw an IndexOutOfBoundsException
} catch (IndexOutOfBoundsException ex) {
ex.printStackTrace();
}
。您也可以将打印流或System.err
传递给该特定流。
此外,如果您使用java logger,则可以使用:
System.out
记录异常。有关详细信息,请参阅:https://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html
答案 2 :(得分:0)
从我的一位老师那里得到了这个。可能对像我这样的其他初学者很有帮助。 (这不是任何h.w./assignment/etc。好奇心的一部分。)
public class ExceptionDemo{
public static void main(String[] args){
int[] array = new int[2];
try {
System.out.println(array[100]);//non-existent
} catch (IndexOutOfBoundsException ex){
StackTraceElement[] e = ex.getStackTrace();
System.err.println("Got error= " + ex + "\n"+
"in file "+e[0].getFileName() +"\n"+
"in class "+e[0].getClassName() +"\n"+
"in method "+e[0].getMethodName() +"\n"+
"in line "+e[0].getLineNumber());
System.err.println("Full trace= ");
ex.printStackTrace(System.err);
}
System.out.println("As Salamu Alaikum");
}
}
答案 3 :(得分:-1)
您可以使用
ex.GetMessage()
由于