如何知道一个对象是否抛出异常

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" 也许,如果一个任务失败没关系,但您希望其余任务继续),或者如果任何失败应该停止该过程,则抛出异常。