Disallow catch without parameter ("LastCatch")

Denis Koroskin 2korden at gmail.com
Tue Oct 27 16:12:12 PDT 2009


On Wed, 28 Oct 2009 00:21:47 +0300, grauzone <none at example.net> wrote:

> BCS wrote:
>> Hello grauzone,
>>
>>> PS: I wonder, should the runtime really execute finally blocks if an
>>> "Error" exception is thrown? (Errors are for runtime errors, Exception
>>> for normal exceptions.) Isn't it dangerous to execute arbitrary user
>>> code in presence of what is basically an internal error?
>>>
>>  If a thrown Error doesn't run finally blocks you will have a very hard  
>> time arguing for catch working and once those don't happen it might as  
>> well kill -9 the process so why even have it in the first place?
>
> You still can use a "catch (Throwable t)" to catch all kinds of errors.  
> I just think that finally (and scope(exit)) should be designed with high  
> level code in mind. Code that allocates heap memory in a finally block  
> is already broken (what if an out of memory error was thrown?).

I've seen code that has throws new OutOfMemoryException(__FILE__,  
__LINE__); when malloc (or other allocation mechanism) has failed, and it  
always make me smile.

QtD did just that last time I've checked.



More information about the Digitalmars-d mailing list