私はこれまでのプログラミングでこれが起こるのを見たことがないので、他の誰かがこれがなぜなのか知っているかどうか尋ねなければなりません
Excel.Worksheet worksheet;
Excel.Sheets sheets;
Excel.Workbook theWorkbook;
Excel.Application ExcelObj = null;
try
{
ExcelObj = new Excel.Application();
worksheet = new Excel.Worksheet();
string sheetName;
theWorkbook = ExcelObj.Workbooks.Open(txtImportFilePath.Text, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", true, true, 0, true, 1, 0);
sheets = theWorkbook.Worksheets;
}
catch (Exception ex)
{
MessageBox.Show("An error occured: " + ex.InnerException.ToString);
}
finally
{
worksheet = null;
sheets = null;
theWorkbook = null;
ExcelObj.Quit();
ExcelObj = null;
}
catch ブロック自体が原因で、プログラムがエラーでクラッシュします。実際のエラーは次の行で発生します: theWorkbook = ExcelObj.Workbooks.Open(..... 開こうとしているファイルが壊れているか、拡張子が一致しませんというエラー。
しかし、メッセージボックスが表示されようとすると、インスタンスエラーに設定されていないオブジェクト参照があります。
これはメッセージボックスが原因ではありません。これは、ex.InnerException が原因です。私は何か別のことをしようとしましたが、 ex.InnerException 行にエラーがスローされました:
Catch(Exception ex)
{
string err;
err = ex.InnerException; //Object reference not set to an instance.....
}
私はこれが起こるのを見たことがありません。手がかりや提案はありますか?
ありがとう!!!