בפרק הקודם למדנו על שיפורים ב – 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)
    {
        //…
    }

     

    אחד השיפורים שהוכנסו לשפה זו היכולת לכתוב 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)
    {
        //…
    }

     

    שיפור נוסף שהוכנס לשפה, זה היכולת לכתוב await בתוך בלוק של catch

    Code Snippet
    private async static Task NewMethod()
    {
        try
        {
            await Task.Delay(100);
        }
        catch (FileNotFoundException e)
        {
            await Task.Delay(100);
        }
    }