在Java中, 有三种方法可以打印异常信息。所有这些都存在于Throwable类中。由于Throwable是所有异常和错误的基类, 因此我们可以在任何异常对象上使用这三种方法。
java.lang.Throwable.printStackTrace()方法:
通过使用此方法, 我们将在下一行获得名称(例如java.lang.ArithmeticException)和描述(例如/零), 并用冒号分隔, 并跟踪堆栈(在代码中发生该异常的位置)。 。
语法如下:
public void printStackTrace()
// Java program to demonstrate
// printStackTrace method
public class Test
{
public static void main(String[] args)
{
try
{
int a = 20 / 0 ;
} catch (Exception e)
{
// printStackTrace method
// prints line numbers + call stack
e.printStackTrace();
// Prints what exception has been thrown
System.out.println(e);
}
}
}
运行时异常:
java.lang.ArithmeticException: / by zeroat Test.main(Test.java:9)
输出如下:
java.lang.ArithmeticException: / by zero
【用Java打印异常消息的3种不同方式】toString()方法
:
通过使用此方法, 我们将仅获得异常的名称和描述。请注意, 此方法在Throwable类中被重写。
// Java program to demonstrate
// toStringmethod
public class Test
{
public static void main(String[] args)
{
try
{
int a = 20 / 0 ;
} catch (Exception e)
{
// toString method
System.out.println(e.toString());
// OR
// System.out.println(e);
}
}
}
输出如下:
java.lang.ArithmeticException: / by zero
java.lang.Throwable.getMessage()方法:
通过使用此方法, 我们将仅获得异常的描述。
语法如下:
public String getMessage()
// Java program to demonstrate
// getMessage method
public class Test
{
public static void main(String[] args)
{
try
{
int a = 20 / 0 ;
} catch (Exception e)
{
// getMessage method
// Prints only the message of exception
// and not the name of exception
System.out.println(e.getMessage());
// Prints what exception has been thrown
// System.out.println(e);
}
}
}
输出如下:
/ by zero
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- 如何实现3路合并排序(代码和算法实现)
- Win8系统IE10添加flash支持的技巧
- Win8如何运用内置超级管理员账户登录系统?
- Win8下载商店应用时出错0x80200024的处理办法
- Win8系统Fresh Paint点击添加纸张后程序停止响应怎样办?
- Win8虚拟内存无法全部加载如何处理?
- Win8.1系统删除微软账户信息的办法
- Win8系统总是提示WiFi不可用如何应对?
- 激活Win8时提示“DNS名称不存在”处理办法