1 package kawa.lang; 2 import gnu.mapping.*; 3 4 8 9 public class NamedException extends RuntimeException 10 { 11 String name; 12 Object [] args; 14 15 public NamedException (String name, Object [] args) 16 { 17 this.name = name; 18 this.args = args; 19 } 20 21 public void checkMatch (Object key) 22 { 23 if (key != this.name && key != Boolean.TRUE) 24 throw this; 25 } 26 27 public Object applyHandler (Object key, Procedure handler) throws Throwable 28 { 29 checkMatch(key); 30 return handler.applyN(args); 31 } 32 33 public String toString() 34 { 35 StringBuffer buf = new StringBuffer (); 36 buf.append("#<ERROR"); 37 int i = 0; 38 int len = args.length; 39 if (len > 1 && args[0] == "misc-error") 41 i++; 42 for ( ; i < len; i++) 43 { 44 buf.append(' '); 45 buf.append(args[i]); 46 } 47 buf.append(">"); 48 return buf.toString(); 49 } 50 } 51 | Popular Tags |