// 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