Mogelijk duplicaat:
Verschillen tussen uitzondering en fout
Hoe kan ik onderscheid maken tussen fouten en uitzonderingen in Java?
Antwoord 1, autoriteit 100%
Een fout “duidt op ernstige problemen
dat een redelijke aanvraag zou moeten
niet proberen te vangen.”
terwijl
Een uitzondering “geeft voorwaarden aan
dat een redelijke toepassing zou kunnen
willen vangen.”
Fout samen met RuntimeException
& hun subklassen zijn unchecked
uitzonderingen. Alle andere uitzonderingsklassen zijn checked
uitzonderingen.
Aangevinkteuitzonderingen zijn over het algemeen die waarvan een programma & het kan een goed idee zijn om programmatisch van dergelijke uitzonderingen te herstellen. Voorbeelden zijn FileNotFoundException
, ParseException
, enz. Van een programmeur wordt verwacht dat hij op deze uitzonderingen controleert door het try-catch-blok te gebruiken of het terug te gooien naar de beller
Aan de andere kant hebben we niet-aangevinkteuitzonderingen. Dit zijn die uitzonderingen die misschien niet gebeuren als alles in orde is, maar ze komen wel voor. Voorbeelden zijn onder meer ArrayIndexOutOfBoundException
, ClassCastException
, enz. Veel toepassingen gebruiken de clausule try-catch
of throws
voor RuntimeExceptions
& hun subklassen, maar vanuit het taalperspectief is dit niet verplicht. Houd er rekening mee dat herstel van een RuntimeException
over het algemeen mogelijk is, maar de jongens die de klasse/uitzondering hebben ontworpen, vonden het niet nodig voor de eindprogrammeur om op dergelijke uitzonderingen te controleren.
Foutenzijn ook uitgevinkte uitzondering & de programmeur hoeft hier niets mee te doen. In feite is het een slecht idee om een try-catch
-clausule voor fouten te gebruiken. Meestal is herstel van een fout niet mogelijk & het programma moet kunnen worden beëindigd. Voorbeelden zijn OutOfMemoryError
, StackOverflowError
, enz.
Houd er rekening mee dat, hoewel fouten niet-aangevinkte uitzonderingen zijn, we niet moeten proberen ermee om te gaan, maar het is oké om met RuntimeExceptions
(ook niet-aangevinkte uitzonderingen) in code om te gaan. Aangevinkte uitzonderingen moeten door de code worden afgehandeld.
Antwoord 2, autoriteit 9%
Error
en Exception
breiden beide Throwable
uit, maar meestal wordt Error
gegenereerd door JVM in een scenario dat fataal en er is geen manier voor het toepassingsprogramma om van die fout te herstellen. Bijvoorbeeld OutOfMemoryError
.
Hoewel zelfs een applicatie een Error
kan veroorzaken, maar het is gewoon geen goede gewoonte, in plaats daarvan zouden applicaties gecontroleerde uitzonderingen moeten gebruiken voor herstelbare voorwaarden en runtime-uitzonderingen voor programmeerfouten.
Antwoord 3, autoriteit 7%
Fout is iets waar je meestal niet mee om kunt gaan.
Uitzondering was bedoeld om je de kans te geven er iets mee te doen. probeer iets anders of schrijf naar het logboek.
try{
//connect to database 1
}
catch(DatabaseConnctionException err){
//connect to database 2
//write the err to log
}
Antwoord 4, autoriteit 3%
Over het algemeen is een fout die niemand kan controleren of raden wanneer deze optreedt. Uitzondering kan worden geraden en kan worden afgehandeld.
In Java zijn Exception en Error een subklasse van Throwable. Het is gedifferentieerd op basis van de programmabesturing. Fout zoals OutOfMemory Error die geen programmeur kan raden en aankan. Het hangt dynamisch af van de architectuur, het besturingssysteem en de serverconfiguratie. Exception programmer kan het aan en kan wangedrag van de applicatie voorkomen. Als uw code bijvoorbeeld op zoek is naar een bestand dat niet beschikbaar is, wordt IOException gegenereerd. Dergelijke instanties kunnen de programmeur raden en kunnen het aan.