Exception e中e的getMessage()和toString()方法的区别: 示例代码1: public class TestInfo { private static String str =null; public static void main(String[] args) { System.out.println("test exception"); try { if(str.equals("name")){ System.out.println("test exception"); } } catch (Exception e) { System.out.println(e.toString()); System.out.println(e.getMessage()); } } } 输出结果: java.lang.NullPointerException null 示例代码2: public class TestInfo { private static int m = 0; public static void main(String[] args) { System.out.println("test exception"); try { m = 899/0; } catch (Exception e) { System.out.println(e.toString()); System.out.println(e.getMessage()); } } } 输出结果: java.lang.ArithmeticException: / by zero / by zero 总结:由此可以看出,e.toString()获取的信息包括异常类型和异常详细消息,而e.getMessage()只是获取了异常的详细消息字符串。
e的getMessage()和printStackTrace()方法的区别:
e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针... e.printStackTrace();会打出详细异常,异常名称,出错位置,便于调试用.. 一般一个异常至少几十行