-2

データベースに文字列として保存されているフィールドがあります。これは実際には、longのリストに変換するコンマ区切りの数値文字列です。変換を行うコード行は、次のようになります。

TheListOfLongs = (from string s in StringFromDB.Split(',') 
                  select Convert.ToInt64(s)).ToList<long>();

データベースストレージ文字列を作成するコードは次のようになります。

return String.Join(",", TheListOfLongs.Select(x=> x.ToString()).ToArray());

これは正常に機能しますが、ご覧のとおり、何らかの理由で文字列に問題がある場合は、コードの最初の行のコードがで壊れますConvert.ToInt64(s)

これですべてをステートメントにラップできることがわかりましたtryが、私の質問は次のとおりです。データベースに文字列を格納して取得すると、文字列が破損する可能性があります(この場合、tryステートメントが必要です)。これは1兆の奇妙なタイプのイベントですか。 ?

4

2 に答える 2

1

DBから選択しても、文字列が破損することはありません。

転送中などに接続が切断された場合、例外がスローされます。

于 2013-02-12T19:10:48.533 に答える
1

破損したデータ自体については心配しません。ただし、数値データである必要があるものを解析できない、より一般的なケースを確実に処理する必要があります。

最も制御された状況でも、期待どおりにデータを処理できない場合の条件を提供することは、優れたプログラミング手法です。それがアプリケーションにとって何を意味するかは、決定する必要があるものです。ステートメントをaでラップするとtry..catch、アプリケーションが窒息するのを防ぐことができますが、解析されたリストが後で重要になる場合は適切でない場合があります。

于 2013-02-12T19:13:24.820 に答える