Toen ik checked exceptions tegenkwam bij java was ik in het begin er helemaal verliefd op. Je kon eenvoudig afdwingen dat de exceptie afgevangen moet worden, of dat hij verder gepropageerd moet worden. Bij het uitkomen van c# (en .NET) zag ik dat daar geen checked exceptions aanwezig waren en vond dit een groot min-punt van de taal. Op javalobby kom je natuurlijk de bijbehorende flames en trolls tegen dat de meest voorkomende fout op het .NET platform de unhandeledException zal zijn.
Maar ik begin steeds anders tegen de checked exception aan te kijken. Veel generieke bibliotheken zijn niet gebouwd voor een specifieke checked exception (alhoewel je met wat generics wel een eind kan komen
) en hierdoor kan je 2 dingen doen.
-copies maken van die libraries en dan checked exceptions toevoegen.
-de checked exception wrappen in een unchecked exception en die dan opwerpen. Hierdoor kan je dus uitstekend gebruik maken van die library.
Ik hoef niet uit te leggen dat de 1e optie niet echt geweldig is, en daardoor kom je dus uit bij de 2e. De vraag blijft dan hoe belangrijk die checked exception blijft, op het moment dat je hem gaat wrappen in een unchecked exception.
Wat vinden jullie van checked exceptions? En mensen die geen checked exceptions hebben (c++, c#, delphi), hoe gaan jullie om met het afvangen van exceptions?
ps
Ik zie trouwens vaak als argument tegen checked exceptions staan, dat mensen de checked exception gaan afvangen zonder er iets mee te doen.
Dit vind ik dus een enorm slap argument. Als mensen zo dom zijn, dan moeten ze gewoon niet gaan programmeren en ik heb geen zin om daar mee lastig gevallen te worden.
Maar ik begin steeds anders tegen de checked exception aan te kijken. Veel generieke bibliotheken zijn niet gebouwd voor een specifieke checked exception (alhoewel je met wat generics wel een eind kan komen
-copies maken van die libraries en dan checked exceptions toevoegen.
-de checked exception wrappen in een unchecked exception en die dan opwerpen. Hierdoor kan je dus uitstekend gebruik maken van die library.
Ik hoef niet uit te leggen dat de 1e optie niet echt geweldig is, en daardoor kom je dus uit bij de 2e. De vraag blijft dan hoe belangrijk die checked exception blijft, op het moment dat je hem gaat wrappen in een unchecked exception.
Wat vinden jullie van checked exceptions? En mensen die geen checked exceptions hebben (c++, c#, delphi), hoe gaan jullie om met het afvangen van exceptions?
ps
Ik zie trouwens vaak als argument tegen checked exceptions staan, dat mensen de checked exception gaan afvangen zonder er iets mee te doen.
code:
1
2
3
| try{
....
}catch(CheckedException e){} |
Dit vind ik dus een enorm slap argument. Als mensen zo dom zijn, dan moeten ze gewoon niet gaan programmeren en ik heb geen zin om daar mee lastig gevallen te worden.
[ Voor 3% gewijzigd door Alarmnummer op 07-08-2003 11:12 ]