第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Try-Catch 與 If-Else | 我應(yīng)該爭取在這個中使用 If-Else 還是只使用

Try-Catch 與 If-Else | 我應(yīng)該爭取在這個中使用 If-Else 還是只使用

C#
牧羊人nacy 2022-10-23 15:01:39
概括我的任務(wù)是建立一個管理軟件(對于一個小藝術(shù)家,所以他們的硬件肯定可以應(yīng)付),但是,我希望在給他們之前盡可能地提高它的效率。主要功能已經(jīng)完成,現(xiàn)在主要是潤色和優(yōu)化。代碼        DateTime DueDate;        try        {            DateTime.TryParse(dteCommission.SelectedDate.Value.Date.ToShortDateString(),            out DueDate);        }        catch(Exception E)        {            MessageBox.Show("Due Date wasn't set. Defaulting to current date.", "Alert",                MessageBoxButton.OK, MessageBoxImage.Warning);            DueDate = DateTime.Parse(DateTime.Now.ToShortDateString());        }注意:Exception e僅用于快速完成,真正的異常是已知的。給出的錯誤是“可空對象必須有一個值”。System.InvalidOperationException問題最好像我一樣處理這個問題,還是 If-Else 會更好?如果是這樣,我將如何實施它?
查看完整描述

4 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗 獲得超18個贊

由于您已經(jīng)在使用TryParse,因此無需使用try ...catch塊。不僅效率低下,而且也不干凈。只需獲取的返回值DateTime.TryParse并做出決定。

var isDate = DateTime.TryParse(dteCommission.SelectedDate.Value.Date.ToShortDateString(),

接著,if (isDate){...} else {...}


查看完整回答
反對 回復(fù) 2022-10-23
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗 獲得超12個贊

異常 e 僅用于快速完成它,并且知道真正的異常。給出的錯誤是“可空對象必須有一個值”。System.InvalidOperationException

你怎么知道在運(yùn)行時它會是一個不同的異常?可以說 NullReferenceException(例如)也許。請記住,所有異常都實現(xiàn) Exception 對象。

最好像我一樣處理這個問題,還是 If-Else 會更好?

您需要更好地處理錯誤。您知道它可能是 Nullable,因此您需要在繼續(xù)之前檢查它是否有價值。您應(yīng)該注意警告并優(yōu)雅地處理它們。

如果是這樣,我將如何實施它?

try

{

    if(dteCommission.SelectedDate.HasValue) 

    { 

        DateTime.TryParse(dteCommission.SelectedDate.Value.Date.ToShortDateString(),

                    out DueDate); 

    } else{

        MessageBox.Show("Due Date wasn't set. Defaulting to current date.", "Alert",

                    MessageBoxButton.OK, MessageBoxImage.Warning);

                DueDate = DateTime.Parse(DateTime.Now.ToShortDateString());

    }

catch(Exception e)

{

    Log.LogError(e);

    MessageBox.Show("Unhandle error occurred please call Admin", "Alert",

                    MessageBoxButton.OK, MessageBoxImage.Warning);

}


查看完整回答
反對 回復(fù) 2022-10-23
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊

如果您致力于使用,tryparse那么這是一種更好的方法If-Else,取決于tryparse方法的輸出。但如果您正在使用Parse它,您可能會遇到以下異常之一:

  • ArgumentNullException(如果參數(shù)值為空)

  • FormatException(如果參數(shù)值不是整數(shù)值或格式不正確)

  • FormatException(如果參數(shù)值超出整數(shù)范圍)

所以最好使用異常處理。

對于第一種方法:

var isParsable = DateTime.TryParse(dteCommission.SelectedDate.Value.Date.ToShortDateString(),

out DueDate);

if (isParsable)

{

     //Continue With your Procedure

}

else

{

     MessageBox.Show("Due Date wasn't set. Defaulting to current date.", "Alert",

     MessageBoxButton.OK, MessageBoxImage.Warning);

}

對于第二種情況,您可以使用:


DateTime DueDate;

try

{

     var DueDate = DateTime.TryParse(dteCommission.SelectedDate.Value.ToString());


}

catch (Exception E)

{

     MessageBox.Show("Due Date wasn't set. Defaulting to current date.", "Alert",

     MessageBoxButton.OK, MessageBoxImage.Warning);

     //also you can you the exception type to make it clear for use if it is

     // an exception of Null, Format or Argument

}



查看完整回答
反對 回復(fù) 2022-10-23
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊

我想建議在這種情況下使用 if else 語句而不是異常,它也會被優(yōu)化,并讓您有機(jī)會給出特定于該場景的有意義的消息。

異常處理應(yīng)該只用于處理未知場景。


查看完整回答
反對 回復(fù) 2022-10-23
  • 4 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號