בפרק הקודם למדנו על שיפורים ב – Automatic properties, הפעם נראה על שיפורים ב – try catch
אחד הדברים שלפעמים נעשה בבלוק של try, זה מספר בלוקים של catch כדי שנוכל לטפל בשגיאה המתאימה, לדוגמה:
Code Snippet
try
{
string str = File.ReadAllText("the path.txt");
}
catch(FileNotFoundException e)
{
if (e.FileName.EndsWith(".txt"))
{
//….
}
else
{
//…..
}
}
catch(Exception e)
{
//…
}
{
string str = File.ReadAllText("the path.txt");
}
catch(FileNotFoundException e)
{
if (e.FileName.EndsWith(".txt"))
{
//….
}
else
{
//…..
}
}
catch(Exception e)
{
//…
}
אחד השיפורים שהוכנסו לשפה זו היכולת לכתוב when בבדיקה, כך:
Code Snippet
try
{
string str = File.ReadAllText("the path.txt");
}
catch(FileNotFoundException e) when (e.FileName.EndsWith(".txt"))
{
//…
}
catch(FileNotFoundException e)
{
//…
}
catch(Exception e)
{
//…
}
{
string str = File.ReadAllText("the path.txt");
}
catch(FileNotFoundException e) when (e.FileName.EndsWith(".txt"))
{
//…
}
catch(FileNotFoundException e)
{
//…
}
catch(Exception e)
{
//…
}
שיפור נוסף שהוכנס לשפה, זה היכולת לכתוב await בתוך בלוק של catch
Code Snippet
private async static Task NewMethod()
{
try
{
await Task.Delay(100);
}
catch (FileNotFoundException e)
{
await Task.Delay(100);
}
}
{
try
{
await Task.Delay(100);
}
catch (FileNotFoundException e)
{
await Task.Delay(100);
}
}