Undantag gör det väldigt enkelt att skriva kod där ett undantag som kastas kommer att bryta invarianter och lämna objekt i ett inkonsekvent tillstånd. De tvingar dig i huvudsak att komma ihåg att nästan varje uttalande du gör potentiellt kan kasta, och hantera det på rätt sätt. Att göra det kan vara knepigt och kontraintuitivt.
Varför är undantag dåliga C++?
Den främsta anledningen till att C++-undantag så ofta förbjuds är att det är väldigt svårt att skriva undantagssäker C++-kod. Undantagssäkerhet är inte ett begrepp man hör särskilt ofta, utan betyder i grunden kod som inte skruvar upp sig själv för mycket om stapeln rullas upp.
Är undantaget undantag dåligt?
Du bör använda minst förutom Undantag : för att undvika att fånga system exceptions som SystemExit eller KeyboardInterrupt. Här är länken till dokumenten. I allmänhet bör du uttryckligen definiera exceptions som du vill fånga, för att undvika att fånga oönskade exceptions . Du bör veta vilka exceptions du ignorerar.
Varför är catch exception nästan alltid en dålig idé?
catch(Exception) är en dålig praxis eftersom den fångar alla RuntimeException (omarkerade undantag) också. Detta kan vara java-specifikt: Ibland måste du anropa metoder som kastar markerade undantag. Om detta finns i ditt EJB / affärslogiklager har du två val - fånga dem eller kasta dem igen.
Är undantag dåliga för prestanda?
Slutsats. Använder inteundantag på grund av deras potentiella resultatpåverkan är en dålig idé. Undantag hjälper till att ge ett enhetligt sätt att hantera körtidsproblem och de hjälper till att skriva ren kod. Du måste dock spåra antalet undantag som kastas i din kod.