2017-03-06 7 views
-1

私は自分のアプリケーション内で起こった可能性のあるエラーを記録し、以下のようにOracleデータベースに挿入しようとしていますが、私はインデックスと長さを引き起こす部分文字列は、文字列エラー内の場所を参照する必要がありますか?

インデックスおよび長さは文字列内の場所を参照しなければならないと言うsubstringでエラーを取得しています。

catch (Exception EX) 
{ 
    string ErrorMsg = EX.Message.Substring(1, 1024); 

    Error_log(ErrorMsg, null, "InsertProductData", "F0103", null); 
    MessageBox.Show("Please call technical support", "ُError Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 

誰が助けてくださいすることができますか?私はあまりにも多くのinfroamtionを保存することができますか?とにかくエラーコードを抽出するには?エラーメッセージだけでなく、

Sutloionフィードバック

すべてのいただきありがとうございます。.. はちょうど私がコード

string ErrorMsg = ex.Message.Substring(0, Math.Min(ex.Message.Length, 1024)); 
+0

「EX.Message」の長さはどのくらいですか? – imsome1

+0

@ imsome1私はちょうど列の最大サイズである最初の1024文字を欲しいので、位置0から1024までの部分文字列を文字列にしています – sam

+0

0から1023を試してみて – imsome1

答えて

1

EX.Message.Substring(1,Math.Min(Ex.Message.Length - 1,1024))

に変更 EX.Message.Substring(1, 1024)の下に使用することによって解決この のような問題を解決する方法上の他のためのフィードバックを与えたいです
+0

なぜ、0番目の 'char'を含めないのですか? –

+0

特別な理由はありません。彼は1から始まった – levent

+0

@例外なし例外と何も起こらない – sam

関連する問題