Question/suggestion about exceptions

Sean Kelly sean at f4.ca
Tue Oct 24 08:45:31 PDT 2006


Ary Manzana wrote:
> Graham St Jack wrote:
>> Is there a way to automatically keep track of what exceptions may be 
>> thrown by a function or method? Ideally, what I am looking for is 
>> something like Java's "throws" keyword, but I would be happy with 
>> almost anything.
>>
>> It is way too hard to develop reliable code of any size that uses 
>> exceptions extensively, because as things change, you lose track of 
>> what exceptions are thrown from where. Some sort of compiler support 
>> would make this a lot easier.
>>
>> What I had in mind was an optional compiler warning and a new "throws" 
>> keyword. The compiler would (optionally) issue a warning if a function 
>> or method can throw an exception that it hasn't declared that it 
>> "throws". With this assistance, it becomes is easy to keep track of 
>> what can be thrown from where. Making it a warning and optional stops 
>> it from breaking existing code, and makes quick code hacks easy to 
>> write still.
>>
>> Thoughts?
> 
> I totally support this idea. Is it hard to implement in the compiler? Of 
> course, there should also be a hierarchy of exceptions, just like Java: 
> RuntimeException dosen't signal an error when not try-catching it.
> 
> Thoughts? :-)

It won't work with extern (C) functions, since the exception list would 
probably be a part of the mangled function name.  This is why 'throws' 
goes basically unused in C++, even though the feature is present.


Sean



More information about the Digitalmars-d mailing list