| #import "TException.h" | 
 |  | 
 | @implementation TException | 
 |  | 
 | + (id) exceptionWithName: (NSString *) name | 
 | { | 
 |   return [self exceptionWithName: name reason: @"unknown" error: nil]; | 
 | } | 
 |  | 
 |  | 
 | + (id) exceptionWithName: (NSString *) name | 
 |                   reason: (NSString *) reason | 
 | { | 
 |   return [self exceptionWithName: name reason: reason error: nil]; | 
 | } | 
 |  | 
 |  | 
 | + (id) exceptionWithName: (NSString *) name | 
 |                   reason: (NSString *) reason | 
 |                    error: (NSError *) error | 
 | { | 
 |   NSDictionary * userInfo = nil; | 
 |   if (error != nil) { | 
 |     userInfo = [NSDictionary dictionaryWithObject: error forKey: @"error"]; | 
 |   } | 
 |  | 
 |   return [super exceptionWithName: name | 
 |                 reason: reason | 
 |                 userInfo: userInfo]; | 
 | } | 
 |  | 
 |  | 
 | - (NSString *) description | 
 | { | 
 |   NSMutableString * result = [NSMutableString stringWithString: [self name]]; | 
 |   [result appendFormat: @": %@", [self reason]]; | 
 |   if ([self userInfo] != nil) { | 
 |     [result appendFormat: @"\n  userInfo = %@", [self userInfo]]; | 
 |   } | 
 |    | 
 |   return result; | 
 | } | 
 |  | 
 |  | 
 | @end |