Module faults
Handle uncaught ObjC/NSExceptions
and other
fault
s similar to standard module faulthandler
available since Python 3.3.
By default, fault
handling is not enabled. In Python 3.3
and later, the faulthandler may be enabled by (a) calling function
faulthandler.enable
or (b) setting env variable PYTHONFAULTHANDLER to any no-empty string or (c)
including option -X faulthandler
on the python command
line.
Command line option -X faulthandler
is not available in
older Python releases, but fault
handling by this
module pycocoa.faults can be enabled by either (a) calling
function faults.enable or (b) setting env variable PYTHONFAULTHANDLER to any no-empty string.
NOTE, if in Python 3.3 or later, the env variable is defined as
PYTHONFAULTHANDLER=pycocoa, the Python
faulthandler
will be overridden by this module pycocoa.faults.
|
|
|
enable(file=_sys.stdout,
**unused)
Enable fault handling similar to the faulthandler module available in Python 3.3 and
later. |
|
|
|
is_enabled(sig=None)
Check whether fault handling is enabled, similar to the
faulthandler module available in Python 3.3 and
later. |
|
|
|
SIGs_enabled(*sigs)
Return the signals currently handled as fault . |
|
|
|
exiting(status=None)
Get/set the exit and status to use after
fault s or uncaught
ObjC/NSException s. |
|
|
|
|
|
|
|
__all__ = _ALL_LAZY.faults
|
|
r = NSColor.redColor()
|
|
c = r.cyanComponent()
|
Disable fault handling and uninstall the signal handlers
installed by faults.enable, like the faulthandler module in Python 3.3 and later.
- Returns:
None .
|
enable(file=_sys.stdout,
**unused)
|
|
Enable fault handling similar to the faulthandler module available in Python 3.3 and
later.
Try to install handlers for the SIGABRT ,
SIGBUS , SIGFPE , SIGILL and
SIGSEGV signals to dump a an ObjC call stack and Python
traceback to file .
- Raises:
TypeError - File file doesn't have callable
write and flush attributes.
|
Check whether fault handling is enabled, similar to the
faulthandler module available in Python 3.3 and
later.
- Parameters:
sig - Check whether fault handling includes this signal
(signal.SIG* ).
- Returns:
True if fault handling is currently
enabled, False otherwise.
|
Return the signals currently handled as fault .
- Returns:
- An Adict with the
SIG* name and value
of the currently handled signals, if any.
|
Get/set the exit and status to use after
fault s or uncaught
ObjC/NSException s.
- Parameters:
status - The exit "door" and status code to be used (small
int ) or None to leave unchanged. A
negative status invokes
os._exit(abs(status)) to terminate without normal
exit processing, while a non-negative
status uses sys.exit(status)
after a fault .
- Returns:
- The previously set
exiting code
(int ).
Note:
The faulthandler module in Python 3.3 and later
ignores all exiting settings.
|
getUncaughtExceptionHandler()
|
|
Get the currently installed uncaught
ObjC/NSException handler.
- Returns:
- The installed handler (
callable ) or
None if no handler was or couldn't be installed
(like on macOS 12.0.1 Monterey, for example).
|
setUncaughtExceptionHandler(handler,
log=True,
raiser=False)
|
|
Install a callback to handle uncaught
ObjC/NSException s.
The handler(error) is called with one argument
error , an NSExceptionError instance. It should return that same
error , an exiting status or None . In in
former case, that error will subsequently be raised as
Python exception.
- Parameters:
handler - A callable to be invoked with a single argument
error , an NSExceptionError instance and to return that
same error , an exiting status or
None .
log - Print the error , an time stamp and -if avilable- the
ObjC callstack and Python traceback prior to invoking the
handler (bool ).
raiser - Raise the NSExceptionError error ,
regardless of the return value from the
handler .
- Returns:
- The previously installed uncaught
ObjC/NSException handler or None if no
handler was or couldn't be installed.
- Raises:
RuntimeError - Setting uncaught exception handlers unavailable, but only thrown if
raiser =True.
TypeError - The handler is not callable.
|