C# programmering,hjälp för nybörjare

Permalänk
Medlem

C# programmering,hjälp för nybörjare

Hejsan,

Är en nybörjare på programmering och bestämt att C# blir det jag ska först lära mig.
Har nu kommit till undantagshantering och felsökning. Har varit inne på MSDN och en del förstår jag men är fortfarande lite borta med undantagshantering och hur man lägger den i programmet.Min fråga/ mina frågor till er som är mer erfarna är följande;

Vad menas med undantagshantering? Är det enbart TryCatch eller är det även TryParse.
Kan man blanda TryCatch och if-satsen i olika kodblock? Med det menar jag ifall det går att skriva såhär;
try
{}
catch
{}
if
{}....

Permalänk
Medlem

TryParse har inbyggd undantagshantering. Den returnerar true om det gick bra, och false om det gick dåligt.

Om man däremot använder en funktion som man vet med sig kan kasta en exception så bör man hantera det med en try/catch.

Är inte riktigt med på vad du vill göra i ditt exempel där.

Visa signatur

DAN Cases A4-SFX | AMD Ryzen 7 9800X3D | Thermalright AXP90-X47 Full Copper |
INNO3D GeForce RTX 4070 Ti SUPER 16GB Twin X2 | Kingston 32GB (2x16GB) DDR5 6000MHz CL30 | ASUS ROG Strix B650E-I Gaming WIFI | Samsung 960 EVO 1TB | Corsair SF-600

Permalänk
Medlem
Skrivet av Nioreh83:

TryParse har inbyggd undantagshantering. Den returnerar true om det gick bra, och false om det gick dåligt.

Om man däremot använder en funktion som man vet med sig kan kasta en exception så bör man hantera det med en try/catch.

Är inte riktigt med på vad du vill göra i ditt exempel där.

Så med andra ord så är TryParse en sorts variant av undantagshantering men med TryCatch kan man ha mer info ifall det blir fel eller något?
Ja, anledning till att jag inte skrev så mycket om exemplet är för att jag håller på med en uppgift och vill inte dela med mig så mycket av den då jag vill själv lösa den. Ifall det måste finnas undantagshantering i programmet bör det väl räcka med TryParse ifall man vill ha det kort ?

Permalänk
Medlem

Brr svensk terminologi... men antar att du syftar på exception handling.

Generellt så kan du se det som att hantera situationer som kan få din mjukvara att krasha, eller på andra sätt skapa problem då exceptions uppstår.

din 'if' här är lite udda men där finns en tredje komponent till try/catch, d.v.s. finally

Men till din fråga, jo det går definitivt att skriva som du gjort, så länge du är införstådd med vad det betyder.

try { //Something 'risky', e.g calling a remote webservice, database etc } catch (Exception e) { //Handling any possible exception, logging, returning null etc } finally { //Something you want to happen after the try and/or catch regardless of outcome }

detta kan du vara använbart om du t.ex arbetar i ett system där du måste avalokera resurser efter använding.
t.ex

SPSite site; try { SPSite = new SPSite("http://RandomURL.org"); //Use site to do fancy pants stuff } catch (Exception e) { Logger.LogError(e.ToString()); } finally { if(site != null) { site.Dispose(); } }

Som Nioreh sa, så har TryParse (och generellt sätt alla Try functioner du hittar i bibliotek) inbyggd exception handling.

Permalänk
Medlem
Skrivet av Aghani:

Så med andra ord så är TryParse en sorts variant av undantagshantering men med TryCatch kan man ha mer info ifall det blir fel eller något?

try-catch är en språkkonstruktion i C#, d.v.s. det är inbyggt i själva språket. TryParse är däremot en metod som vissa klasser i C#:s standardbibliotek har, och har egentligen inget med try-catch att göra förutom just att den inte kastar något undantag.

TryParse skulle t.ex. kunna implementeras så här (i detta fall Int32.TryParse):

public static bool TryParse(string s, out int result) { try { result = Parse(s); return true; // Allt gick bra, returnera true. } catch (Exception e) { return false; // Parse kastade ett exception, returnera false. } }