webForumDet fria alternativet

kasta Exceptions från metoder i C#

2 svar · 329 visningar · startad av ps

psMedlem sedan juni 2000841 inlägg
#1

I Java skriver man tex så här:

public void readFile() throws IOException
{
     //massa kod
}

Men hur gör man i C# för att visa att en metod möjligtvis kastar Exceptions?
Jag tycker det verkar idiotiskt om man inte på något sätt visar det.
Om tex en person skriver en klass som en annan person sedan anväder.. då "syns" det ju inte vilka Exceptions som är möjliga att kasta.
Har man ett någorlunda strukturerat program så vill man ju kasta upp exceptionet på rätt ställe och inte ta hand om det i ursprungsmetoden.

developerMedlem sedan aug. 2001458 inlägg
#2

Det är en bra och befogad fråga du ställer. Det har visat sig att Javas "checked exceptions" har några nackdelar och att fördelarna inte visat sig så stora.

Eric Gunnerson är en av personerna bakom C#, läs hans synpunkter här: http://discuss.develop.com/archives/wa.exe?A2=ind0011A&L=DOTNET&P=R32820

Även Bruce Eckel har även skrivit en artikel om värdet av checked exeptions: http://www.mindview.net/Etc/Discussions/CheckedExceptions

psMedlem sedan juni 2000841 inlägg
#3

Enligt Bruce Eckel verkar ju det största problemet med checked exceptions vara att man måste skriva mer kod (och därmed skriva rörigare kod).
Men vilket är bäst egentligen... att man vet vilka exceptions en metod möjligtvis kastar än att inte veta vad som kastas förrän man läst igenom metoden och dess metodanrop,eller vänta tills det inträffar och programmet kraschar!

Jag tycker det är kass att man inte ens har möjligheten att på nåt sätt visa vilka exceptions som kastas, och sen kan det möjligtvis vara upp till användaren om man vill ta hand om det eller inte.

250 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
130 ms — hämta forumlista (db)
117 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)