C# に基づくテスト自動化ツールである Ranorex を使用していますが、例外処理と例外の再スローについて質問があります。私はC#プログラミングにかなり慣れていないので、ご容赦ください!次のコードを検討してください。
子クラス/メソッド..
try
{
do something;
'unhandled exception on line 150'
}
catch (exception)
{
throw;
}
親クラス/メソッド
try
{
childmethod();
}
catch (exception ex)
{
report.info("Info",ex.Stacktrace);
}
私ができるようにしたいのは、子クラス/メソッドではなく親クラスの例外ハンドラーで、例外が発生した行番号を報告することです。このようにして、すべての子クラス/メソッドで、例外をマスター クラス/メソッド (つまり、Ranorex 用語のテスト ケース) に戻す (スローする) ことができます。親例外ハンドラーでは、システムの詳細を報告したり、アプリケーションを閉じたり、テストに失敗したりするなど、他のことを行う必要があります。これを 1 か所だけで行いたいので、最上位クラスに配置します。ただし、上記のコードを使用すると、stracktrace は再スローされる子例外ハンドラーの行番号と、子メソッドが呼び出された行番号を示します。また、スタックトレースから次のような形式のものを抽出できれば便利です。
Class = 'class name' & Method = 'method name' & Line Num = 'line num'
スタックトレース メッセージ全体ではなく。
.net v4.0 を使用しています
助けてくれてありがとう。
スタックトレース:
The stacktrace information is: at System.Data.DataRow.GetDataColumn(String columnName)
at System.Data.DataRow.get_Item(String columnName)
at ABCTest.SUD.Plat.NewFU.NewFUUserCode.MainMethod(String testDataInstanceId) in c:\Ranorex Local Code\ABCTest\ABCTest\SUD\Plat\NewFU\NewFUUserCode.cs:line 103
at ABCTest.SUD.Plat.NewFU.NewFUUserCode.MainMethod(String testDataInstanceId) in c:\Ranorex Local Code\ABCTest\ABCTest\SUD\Plat\NewFU\NewFireFUUserCode.cs:line 130
at ABCTest.Tests.ManageFAndS.ManACA_IO_One.MainMethod() in c:\Ranorex Local Code\ABCTest\ABCTest\Tests\ManageFAndS\ManACA_IO_One.cs:line 59