gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Allowing Applications to continue after exception...


From: Gregory Casamento
Subject: Re: Allowing Applications to continue after exception...
Date: Fri, 6 Feb 2009 14:40:54 -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?

GC

On Fri, Feb 6, 2009 at 10:51 AM, Wolfgang Lux <address@hidden> wrote:
Gregory Casamento wrote:

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.

Have a look at Apple's ExceptionHandlingFramework, which is described here:

 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)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]