|  | // RUN: %check_clang_tidy %s google-objc-avoid-throwing-exception %t | 
|  | @class NSString; | 
|  |  | 
|  | @interface NSException | 
|  |  | 
|  | + (void)raise:(NSString *)name format:(NSString *)format; | 
|  | + (void)raise:(NSString *)name format:(NSString *)format arguments:(NSString *)args; // using NSString type since va_list cannot be recognized here | 
|  |  | 
|  | @end | 
|  |  | 
|  | @interface NotException | 
|  |  | 
|  | + (void)raise:(NSString *)name format:(NSString *)format; | 
|  |  | 
|  | @end | 
|  |  | 
|  | @implementation Foo | 
|  | - (void)f { | 
|  | NSString *foo = @"foo"; | 
|  | @throw foo; | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: pass in NSError ** instead of throwing exception to indicate Objective-C errors [google-objc-avoid-throwing-exception] | 
|  | } | 
|  |  | 
|  | - (void)f2 { | 
|  | [NSException raise:@"TestException" format:@"Test"]; | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: pass in NSError ** instead of throwing exception to indicate Objective-C errors [google-objc-avoid-throwing-exception] | 
|  | [NSException raise:@"TestException" format:@"Test %@" arguments:@"bar"]; | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: pass in NSError ** instead of throwing exception to indicate Objective-C errors [google-objc-avoid-throwing-exception] | 
|  | [NotException raise:@"NotException" format:@"Test"]; | 
|  | } | 
|  | @end | 
|  |  |