Obj-C Exceptions In Gecko: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 19: Line 19:
When wrapping calls in a method, the first choice you'll have to make is whether to wrap specific calls or the whole method impl. Which one you pick is usually a matter of cleanliness. If there is a big method with a single Apple framework call in it, you might just want to wrap that specific call. Your choice of macros are these:
When wrapping calls in a method, the first choice you'll have to make is whether to wrap specific calls or the whole method impl. Which one you pick is usually a matter of cleanliness. If there is a big method with a single Apple framework call in it, you might just want to wrap that specific call. Your choice of macros are these:


* For wrapping calls that are not expressions, do not return values (we care about)
* For wrapping calls that are not expressions, do not return values (at least not ones we care about)
** <code>NS_OBJC_TRY_IGNORE</code>
** <code>NS_OBJC_TRY_IGNORE</code>
** <code>NS_OBJC_TRY_ABORT</code>
** <code>NS_OBJC_TRY_ABORT</code>
An example of these in use:
<code>NS_OBJC_TRY_ABORT([bar doSomething]);</code>


* For wrapping expressions that return a value
* For wrapping expressions that return a value
Line 31: Line 27:
** <code>NS_OBJC_TRY_EXPR_ABORT</code>
** <code>NS_OBJC_TRY_EXPR_ABORT</code>


An example of EXPR usage is:
An example of non-EXPR macro usage:
 
<code>NS_OBJC_TRY_ABORT([bar doSomething]);</code>
 
An example of EXPR macro usage:


<code>foo = NS_OBJC_TRY_EXPR_ABORT([bar doSomething]);</code>
<code>foo = NS_OBJC_TRY_EXPR_ABORT([bar doSomething]);</code>
Confirmed users, Bureaucrats and Sysops emeriti
1,680

edits

Navigation menu