Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

อะไรคือความแตกต่างระหว่างเมธอด printStackTrace() และเมธอด getMessage() ใน Java


มีสองวิธีในการค้นหารายละเอียดของข้อยกเว้น หนึ่งคือเมธอด printStackTrace() และอีกวิธีคือเมธอด getMessage()

เมธอด printStackTrace()

  • นี่คือเมธอดที่กำหนดไว้ในคลาส java.lang.Throwable และสืบทอดมาในคลาส java.lang.Error และ java.lang.Exception class
  • วิธีนี้จะแสดงชื่อของข้อยกเว้นและลักษณะของข้อความและหมายเลขบรรทัดที่เกิดข้อยกเว้น

ตัวอย่าง

public class PrintStackTraceMethod {
   public static void main(String[] args) {
      try {
         int a[]= new int[5];
         a[5]=20;
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

ผลลัพธ์

java.lang.ArrayIndexOutOfBoundsException: 5
        at PrintStackTraceMethod.main(PrintStackTraceMethod.java:5)

เมธอด getMessage()

  • นี่คือเมธอดที่กำหนดไว้ในคลาส java.lang.Throwable และสืบทอดมาในคลาส java.lang.Error และ java.lang.Exception
  • เมธอดนี้จะแสดงข้อความยกเว้นเท่านั้น

ตัวอย่าง

public class GetMessageMethod {
   public static void main(String[] args) {
      try {
         int x=1/0;
      } catch (Exception e) {
         System.out.println(e.getMessage());
      }
   }
}

ผลลัพธ์

/ by zero