webForumDet fria alternativet
Logga in / Bli medlem

kasta Exceptions från metoder i C#

.NET

2 svar · 330 visningar · startad av ps

Medlem sedan juni 2000841 inlägg
Trådstart#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.

Medlem 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

Medlem 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.

251 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)