|
From: | Gregory Casamento |
Subject: | Re: Allowing Applications to continue after exception... |
Date: | Sat, 7 Feb 2009 22:06:04 -0500 |
My test application doesn't link with the ExceptionHandling framework at all....
So, it looks like we have two things going on here under Cocoa/OpenStep:
1) The standard/default exception handler generally just logs the exception and continues... as illustrated by my example code.
2) The ExceptionHandling.framework allows us to handle exceptions in a more finely grained manner by replacing the standard/default exception handler with one that can talk to the delegate. (if the application links with the ExceptionHandling.framework)
So it seems that implementing part 1 and 2 are not interdependent on one another.
Is anyone else getting that impression?
GCOn Fri, Feb 6, 2009 at 10:51 AM, Wolfgang Lux <address@hidden> wrote:
Gregory Casamento wrote:Have a look at Apple's ExceptionHandlingFramework, which is described here:
What should "NSExceptionMask" be implemented as? SHould it be a boolean that determines if we should allow the application to continue or not?
That is to say
* NSExceptionMask = YES - report all exceptions, but continue anyway...
* NSExceptionMask = NO - current behavior
If so, I have a patch almost ready. I'll submit it to the group prior to committing it since a change that is this important needs to have some amount of consensus.
http://developer.apple.com/documentation/Cocoa/Reference/ExceptionHandlingFramework/index.html
Implementation of this framework looks very straight forward, and I guess that they simply install the defaultExceptionHandler in the event loop of NSApplication.
The NSExceptionHandlingMask (not NSExceptionMask!) default is described in the accompanying guide that Richard mentioned already:
http://developer.apple.com/documentation/Cocoa/Conceptual/Exceptions/Exceptions.html
In particular, see the section "Controlling a Program's Response to Exceptions".
Essentially, NSExceptionHandlingMask is a bit mask that controls whether uncaught exceptions, uncaught system exceptions, and runtime errors are logged and/or handled. The important values (quoted from the above document) are
#define NSLogUncaughtExceptionMask 1
#define NSHandleUncaughtExceptionMask 2
#define NSLogUncaughtSystemExceptionMask 4
#define NSHandleUncaughtSystemExceptionMask 8
#define NSLogRuntimeErrorMask 16
#define NSLogUncaughtRuntimeErrorMask 32
Wolfgang
--
Gregory Casamento
Open Logic Corporation, Principal Consultant
## GNUstep Chief Maintainer
yahoo/skype: greg_casamento, aol: gjcasa
(240)274-9630 (Cell), (301)362-9640 (Home)
NSApplication.m.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |