Re: RFC 63 (v3) Exception handling syntax
[email protected] (Chaim Frenkel) 15 Aug 2000 23:52:49 -0400
| Newsgroups | perl.perl6.language.flow,perl.perl6.language.errors |
|---|---|
| Message-ID | <[email protected]> |
>>>>> "PS" == Peter Scott <[email protected]> writes: >> Please include the comments about global variables and action at a distance. PS> I'm sorry, my brain is fried. Can you spell out for me what you mean in PS> this context and I'll put it in. I am adamant against increasing the number of methods of creating action at a distance. (Look at the planed removal of all the $/, etc variables. Don't keep adding this type of problem. So please, If you intend to continue with these proposals, add to the verbiage, my comments about killing them dead. >> Oh, no! Are you really suggesting that after >> >> open (FOO, "nonesuch") or throw "file not found" >> >> The next statement continues?????? >> >> How in $DIETY's name do you expect to protect code? PS> I said it wasn't necessarily a good thing :-) It's in the grand Perl PS> tradition of giving you enough rope to hang yourself. If someone really PS> chooses to ignore exceptions, they deserve what they get. Or maybe, PS> they're some kind of wizard who has a good reason in some arcane PS> situation. If you like we could stuff it in a Devel:: module. But at PS> least one person had asked for this IIRC. That person can't be serious. You can do serioous damage to other people's code. THey expect not to continue and it does. This stuff is just asking for trouble. PRL> =head2 $SIG{__DIE__} >> PRL> <$SIG{__DIE__}> needs to be triggered only as a I<last> resort PRL> instead of firing immediately, since it messes with the mind of this and PRL> every other decent exception handling mechanism. Perhaps it should >> be axed PRL> altogether. Please. >> >> $SIG{DIE} should die. Action at a distance. Global. Can't know what >> other threads or modules want done here. PS> Actually the main problem I have with $SIG{__DIE__} is not that it exists, PS> but that it is the *first* handler to fire, rather than the last. I PS> wouldn't have mentioned it otherwise. Yes it is the existance. THere is only _one_ and no good way to control how to hand off to previous ones. Or context, or ... PS> There again, if 'try' does an implicit "local $SIG{__DIE__}" at the PS> beginning of its block, does that not handle the problem without getting PS> rid of the thing? If you are doing a try, why are you bothering with $SIG{DIE}. Any global should only be manipulated by one and only one level. The main routine. (Even if it is in a subroutine, but) it should be the sole proviance of the main routine. All this has been hacked to death way back int he '70s why is this all being repeated. <chaim> -- Chaim Frenkel Nonlinear Knowledge, Inc. [email protected] +1-718-236-0183