最近、私は多くの奇妙なシナリオに遭遇しています:-)
ASP.Net アプリケーションで次の 2 つのコードをテストしました。コード 1 は (予想どおり) 例外をスローしますが、コード 2 は (予想に反して) 文字列値が null の場合に例外をスローしません。
- この場合、「<strong>EVAL」が例外をスローしないのはなぜですか?
- EVAL は常にこのように機能するのでしょうか (つまり、「例外なし」)、それともただの運でしょうか?
- 「Eval」が空の文字列を返すという MSDN リファレンスはありますか?
//コード 1 : 例外を発生させる
string test = Convert.ToString(subscriber.EncryptedSSN).Substring(0, Convert.ToString(subscriber.EncryptedSSN).Length >= 5 ? 5 : Convert.ToString(subscriber.EncryptedSSN).Length);
//コード 2 : 例外をスローしません
<%# Convert.ToString(Eval("EncryptedSSN")).Substring(0, Convert.ToString(Eval("EncryptedSSN")).Length >= 5 ? 5 : Convert.ToString(Eval("EncryptedSSN")).Length) %>
参考文献: