私は最近null文字列をトリミングしていたので、私は自分のコードで例外にぶつかった。 私は次のように置き換え:このトリムコードが失敗することはありますか?
SomeValue = (SomeString ?? "").Trim();
このコードは、これまで失敗することはできますか?
ありがとうございました。
注:try/catchを追加できます。私はちょうどtry/catchを使わずに、このラインを失敗から守るようにしています。
私は最近null文字列をトリミングしていたので、私は自分のコードで例外にぶつかった。 私は次のように置き換え:このトリムコードが失敗することはありますか?
SomeValue = (SomeString ?? "").Trim();
このコードは、これまで失敗することはできますか?
ありがとうございました。
注:try/catchを追加できます。私はちょうどtry/catchを使わずに、このラインを失敗から守るようにしています。
これは失敗しません(つまりNullReferenceException
を投げる。):
public static string NullTrim(this String str) {
if(str == null) {
return string.Empty;
}
return str.Trim();
}
これはエラーなしでコンパイルして実行するには、次のすべてを可能にします。
あなたは多くの方法で同じことを実現できます。
SomeValue = (SomeString == null)?string.Empty:SomeString.Trim();
これは私のやり方ではありませんが、今はこれで失敗してはいけません。
おそらくnullをチェックした後にtrimを呼び出す拡張メソッドを書いています。このような何かを:SomeString
は確かstring
であると仮定すると、
"".NullTrim();
" test ".NullTrim();
((string)null).NullTrim();
大丈夫、考えてくれてありがとう。瞬間私は私が持っているラインで行くつもりです。 – frenchie
まあそれが原因NullReferenceException
で失敗していた場合、今、それは間違いなく、そのせいでのを失敗することはありません。残りについては、私は文脈なしで言うことができません。
テストするためにいくつかの小さな単位テストを書くことができますか? –
私はあなたの範囲内の答えがノーだと思う、それは失敗することはできません。通常の操作で失敗する唯一の理由は、メモリ不足です。 –
これはもっとグロテスク的な方法で失敗します。それはガベージデータを生成し、あなたはそれを知らないでしょう。 –