]> git.wincent.com - WOTest.git/blob - NSException+WOTest.h
Fix object-to-pointer comparisons on Leopard
[WOTest.git] / NSException+WOTest.h
1 //
2 //  NSException+WOTest.h
3 //  WOTest
4 //
5 //  Created by Wincent Colaiuta on 19 October 2004.
6 //
7 //  Copyright 2004-2007 Wincent Colaiuta.
8 //  This program is free software: you can redistribute it and/or modify
9 //  it under the terms of the GNU General Public License as published by
10 //  the Free Software Foundation, either version 3 of the License, or
11 //  (at your option) any later version.
12 //
13 //  This program is distributed in the hope that it will be useful,
14 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 //  GNU General Public License for more details.
17 //
18 //  You should have received a copy of the GNU General Public License
19 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 //
21
22 #import <Foundation/Foundation.h>
23
24 #pragma mark -
25 #pragma mark User info dictionary keys
26
27 #define WO_TEST_USERINFO_LINE   @"WOTestLine"
28 #define WO_TEST_USERINFO_PATH   @"WOTestPath"
29
30 @interface NSException (WOTest) 
31
32 /*! Cocoa allows any Objective-C object to be thrown in an exception. Although NSException objects are most commonly used for this purpose there is no limitation that prevents other objects from being used. These objects may or may not respond to the name, reason and userInfo methods that are implemented by NSException. This method accepts any object and attempts to produce a textual description, using the name and reason methods if implemented and otherwise resorting to the description method if implented and finally a basic description based on the name of the class if not. */
33 + (NSString *)WOTest_descriptionForException:(id)exception;
34
35     /*! Returns the name of the passed exception, trying first to send a "name" selector, but falling back on the "description" selector and finally the class name itself. Returns the string "no exception" if passed nil. */
36 + (NSString *)WOTest_nameForException:(id)exception;
37
38 /*! Convenience method that invokes exceptionWithName:reason:userInfo:, packing the supplied path and line information into a userInfo dictionary. */
39 + (NSException *)WOTest_exceptionWithName:(NSString *)name reason:(NSString *)reason inFile:(char *)path atLine:(int)line;
40
41 /*! Convenience method that invokes exceptionWithName:reason:inFile:atLine: to create and raise an exception, packing the supplied path and line information into a userInfo dictionary. */
42 + (void)WOTest_raise:(NSString *)name reason:(NSString *)reason inFile:(char *)path atLine:(int)line;
43
44 @end