Question/suggestion about exceptions
Graham St Jack
grahams at acres.com.au
Mon Oct 23 17:10:13 PDT 2006
I have thought about writing an analysis tool, but it is all a bit
tricky when you have overloaded operators and methods, and try/catch
blocks. This is something the compiler has to do.
BCS 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 would think You could be able to get most of that from a code analysis
> tool that dumps the type of all throw statements and a function call
> tree. A a "linker" with a little DDoc like markup and you'd have quite a
> tool.
>
> OTOH this:
>
> int foo(int function() fn)
> {
> return fn();
> }
>
> could throw anything, as could this:
>
> int foo(Error err)
> {
> throw err;
> }
>
> so some odd cases might not be so clean.
More information about the Digitalmars-d
mailing list