Exception programming difficult
Regan Heath
regan at netmail.co.nz
Mon Aug 13 03:31:34 PDT 2012
On Sun, 12 Aug 2012 22:01:49 +0100, Jonathan M Davis <jmdavisProg at gmx.com>
wrote:
> On Sunday, August 12, 2012 16:33:39 Adam D. Ruppe wrote:
>> Perhaps a workable compromise is to make ddoc able to
>> automatically output the throws list.
>>
>> That way, we don't have the hassle of checks, but we do have a
>> maintained list at relatively no hassle.
>
> That's both a good idea and bad idea, because all it's going to be able
> to
> list is the exceptions thrown directly in the function. In order to list
> them
> all, it would have to go digging through the whole call list (which not
> only
> would be expensive, but isn't even necessarily possible if the source
> isn't
> fully available), and if any classes are involved, then inheritence could
> totally mess up the list, since different derived classes could throw
> different
> exceptions.
>
> So, unless all you care about is what's thrown directly from the
> function,
> you'd end up with a very incomplete list. The advantage is that you'd at
> least
> have a partial list, but if it gave the impression that it was the whole
> list,
> then that would be a problem. Of course, writing it by hand also tends
> to only
> list what gets thrown directly (or maybe also what's thrown in the direct
> helpe functions), so there wouldn't necessarily be much difference. So,
> it may
> be close to what would be written by hand. It's definitely true though
> that it
> won't be listing all of the thrown exceptions in the general case.
I wonder if it might be possible to make an intellisense style GUI/IDE
tool/plugin which could determine all exceptions thrown either by direct
code inspection or ddoc inspection (when source is unavailable) such that
it could actually build a complete list. It would need to cache results
in order to be anywhere near performant I reckon.
R
--
Using Opera's revolutionary email client: http://www.opera.com/mail/
More information about the Digitalmars-d
mailing list