如何知道一个对象是否抛出异常
How to know if there is a exception throw of an object
您好,我们正在开发一个应用程序,我们需要连续执行多项任务,而这些任务可能需要很长时间。所以我们创建了一个 class ,它是一个 "runner" ,我将他需要完成的任务列表发送给他,他会完成所有任务直到完成。因此,如果他 运行 所有任务出现异常,他只需将其抛给 log4net,这样我们就可以一次性调试所有失败的任务。所以我对单元测试没有经验,我现在尝试使用它。我的任务是读取多个文件。我发送了许多具有不同上下文的文件,所以如果我更改了某些内容但它不起作用,那将是我的错。但是如果我用我的 log4net 处理它,我怎么知道我是否得到异常?我应该怎么做才能让它发生?
class Runner{
void addTask(...);
void execute(){
foreach(var task in ListOfTask){
try
{ DoSomeThing(); }
catch(Exception ex)
{ Log.Error("Message", ex); }
}
}
class XMLReader{
string Read();
}
[TestClass]
class Test{
[TestMethod]
[DeploymentItem("filePath1")]
[DeploymentItem("filePath2")]
[DeploymentItem("filePath3")]
void TestRunner(){
Runner r = new Runner();
r.addTask("filePath1");
r.addTask("filePath2");
r.addTask("filePath3");
r.execute();
}
}
你不能这样做,因为你只是在记录异常。您应该 return 某种结果("ListOfResult" 也许,如果一个任务失败没关系,但您希望其余任务继续),或者如果任何失败应该停止该过程,则抛出异常。
您好,我们正在开发一个应用程序,我们需要连续执行多项任务,而这些任务可能需要很长时间。所以我们创建了一个 class ,它是一个 "runner" ,我将他需要完成的任务列表发送给他,他会完成所有任务直到完成。因此,如果他 运行 所有任务出现异常,他只需将其抛给 log4net,这样我们就可以一次性调试所有失败的任务。所以我对单元测试没有经验,我现在尝试使用它。我的任务是读取多个文件。我发送了许多具有不同上下文的文件,所以如果我更改了某些内容但它不起作用,那将是我的错。但是如果我用我的 log4net 处理它,我怎么知道我是否得到异常?我应该怎么做才能让它发生?
class Runner{
void addTask(...);
void execute(){
foreach(var task in ListOfTask){
try
{ DoSomeThing(); }
catch(Exception ex)
{ Log.Error("Message", ex); }
}
}
class XMLReader{
string Read();
}
[TestClass]
class Test{
[TestMethod]
[DeploymentItem("filePath1")]
[DeploymentItem("filePath2")]
[DeploymentItem("filePath3")]
void TestRunner(){
Runner r = new Runner();
r.addTask("filePath1");
r.addTask("filePath2");
r.addTask("filePath3");
r.execute();
}
}
你不能这样做,因为你只是在记录异常。您应该 return 某种结果("ListOfResult" 也许,如果一个任务失败没关系,但您希望其余任务继续),或者如果任何失败应该停止该过程,则抛出异常。