1 package gov.nasa.jpf.jvm; 20 21 import gov.nasa.jpf.util.Printable; 22 23 import java.io.PrintWriter ; 24 25 import java.util.ArrayList ; 26 27 28 32 public class UncaughtException extends RuntimeException implements Printable { 33 34 ThreadInfo thread; 35 int xObjRef; 37 String xClsName; 38 String details; 39 40 ArrayList stackTrace; 41 42 public UncaughtException (ThreadInfo ti, int objRef) { 43 thread = ti; 44 xObjRef = objRef; 45 46 ElementInfo ei = DynamicArea.getHeap().get(xObjRef); 47 xClsName = ei.getClassInfo().getName(); 48 details = ei.getStringField("detailMessage", null); 49 } 50 51 public boolean isAssertionError () { 52 return ("java.lang.AssertionError".equals(xClsName)); 53 } 54 55 public String getRawMessage () { 56 return xClsName; 57 } 58 59 public String getMessage () { 60 String s = "uncaught exception in thread " + thread.getName() + 61 " #" + thread.getIndex() + " : " 62 + xClsName; 63 64 if (details != null) { 65 s += " : \"" + details + "\""; 66 } 67 68 return s; 69 } 70 71 public void printOn (PrintWriter pw) { 72 DynamicArea da = DynamicArea.getHeap(); 73 74 pw.print("uncaught exception in thread "); 75 pw.print( thread.getName()); 76 pw.print(" #"); 77 pw.print(thread.index); 78 pw.print(" : "); 79 80 thread.printStackTrace(pw, xObjRef); 81 pw.flush(); 82 } 83 } 84 | Popular Tags |