A 'default catcher' does have some problems. For example, I cannot set @error with meaningful error codes, since .NET exceptions do not use any error codes. GetLastError is useless in .NET. Furthermore, I do not want it to handle exceptions like StackOverflowException and OutOfMemoryException. So it would be semi-catch all.