7 svar
34 visningar
lagamba 192
Postad: 6 mar 14:19

Visar felmeddelande try/catch

Har angett två catch i min kod nedan precis som tutorialsen i sista bilden. Men jag får felmeddelande på FormatException c
Varför?

sictransit 1643 – Livehjälpare
Postad: 6 mar 14:23 Redigerad: 6 mar 14:25

Vad säger felmeddelandet? Det är ofta en bra ledtråd till vad som faktiskt är fel.

I just det här fallet tror jag den inte gillar du fångar Exception först och därefter försöker fånga FormatException. Jag vet inte hur mycket du kan om objektorientering, men alla exceptions ärver av Exception. Den första catchen kommer alltså att fånga allt, vilket gör den andra redundant.

lagamba 192
Postad: 6 mar 14:26

Ja jag testade att köra programmet och det funkade fint. Så man kan bortse ifrån dessa "fel" då?

Jag har precis börjat läsa programmering 1 på distans. Förstår mig inte mycket på läroboken så kollar på tutorials i samband med det.
Har snart gått igenom denna långa:

https://www.youtube.com/watch?v=GhQdlIFylQ8&t=7446s

Så det är hur långt jag kan kunskapsmässigt.

sictransit 1643 – Livehjälpare
Postad: 6 mar 14:31 Redigerad: 6 mar 14:31
lagamba skrev:

Ja jag testade att köra programmet och det funkade fint. Så man kan bortse ifrån dessa "fel" då?

Kul att du lär dig C#!

Jag tycker absolut inte att du skall bortse från varningar. De är ofta väldigt relevanta och pekar på saker som kanske inte fungerar som du tror, alltså ett bra sätt att lära sig. Det där blocket som fångar FormatException är "död kod" och kommer aldrig att köras. Du kan lika gärna ta bort det.

Nu håller ju du på att lära dig, så det är kanske inte så noga. Ännu.

Om jag som jobbar professionellt med utveckling skulle se det där skulle jag direkt fundera på om den som skrivit koden vet vad den håller på med. Antingen skulle kollegan vara slarvig och strunta i varningar, eller så skulle den inte förstå problemet. Båda är inte OK om man jobbar som utvecklare. 

Så ta för vana att skriva så ren och snygg kod du bara kan, redan från början. Det har du verkligen igen senare.

lagamba 192
Postad: 6 mar 14:38

Ja det är kul, men svårt att förstå i vilken ordning de ska skrivas och hur de hänger ihop..förlitar mig mycket på youtube och hoppas de lär ut rätt.

Tack för hjälpen och tipsen!

Ett tips till: Om du håller muspekaren över metoden ToInt32, så får du upp en liten hjälptext. Kika på det jag ringat in. Det är de två typer av exceptions som metoden kan kasta. Vill du fånga exceptions så är det dessa två och inga andra som gäller.

lagamba 192
Postad: 6 mar 15:12

Tack snälla för tipset! Då behöver man inte memoriera allt då antar jag :)

Inga problem!

Om det där med klasser, arv och typer av exceptions var för abstrakt, så kika på den här pseudokoden:

// Den här koden fångar alla djur, men katter tas om hand separat.
catch (Katter)
{
  // katter tar vi hand om här
}
catch (Djur)
{
  // här fångar vi alla djur som inte fångats tidigare
}

// Den här koden fångar också alla djur, men kattfångaren som kommer sist får inget att göra
catch (Djur)
{
  // här fångar vi alla djur som inte fångats tidigare
}
catch (Katter)
{
  // katter tar vi hand om här
}
Svara
Close