C# 我可以为异常事件创建一个方法吗?

C# 我可以为异常事件创建一个方法吗?,c#,exception,C#,Exception,我想使用异常作为方法的触发器。我该怎么做 例如,发生此异常时: actuator1.Members["ZamanSetreset"].Active = true; // <- NullReferenceException here actuator1.Members["ZamanSetreset"].Connect(); 我经常遇到这种例外情况。那么,如果没有try..catch,我怎么做呢?您可以使用try-catch块 try{ actuator1.Members["ZamanSe

我想使用异常作为方法的触发器。我该怎么做

例如,发生此异常时:

actuator1.Members["ZamanSetreset"].Active = true; // <- NullReferenceException here
actuator1.Members["ZamanSetreset"].Connect();

我经常遇到这种例外情况。那么,如果没有try..catch,我怎么做呢?

您可以使用try-catch块

try{
 actuator1.Members["ZamanSetreset"].Active = true;
}catch(NullReferenceException ex){
  //handle error here
}
编辑:

或者,您也可以先执行空检查:

if(actuator1 != null && Array.IndexOf(actuator1.Members, "ZamanSetreset") > -1){
actuator1.Members["ZamanSetreset"].Active = true;
}else{
  //handle null values
}

您可以使用try-catch块

try{
 actuator1.Members["ZamanSetreset"].Active = true;
}catch(NullReferenceException ex){
  //handle error here
}
编辑:

或者,您也可以先执行空检查:

if(actuator1 != null && Array.IndexOf(actuator1.Members, "ZamanSetreset") > -1){
actuator1.Members["ZamanSetreset"].Active = true;
}else{
  //handle null values
}
正如建议的那样,您需要一个try-catch块。 你可以看看这个

在您的示例中:

try
{
 actuator1.Members["ZamanSetreset"].Active = true;
}
catch(NullReferenceException ex)
{
  //run your method here
}
正如建议的那样,您需要一个try-catch块。 你可以看看这个

在您的示例中:

try
{
 actuator1.Members["ZamanSetreset"].Active = true;
}
catch(NullReferenceException ex)
{
  //run your method here
}
捕获NullReferenceException至少是一种误导,最多也是一种危险的想法。让我们提取一个局部方法

    bool Perform(string name) {
      var actuator = actuator1.Members[name];

      if (actuator != null) {
        actuator.Active = true;

        actuator.Connect(); 

        return true;
      }

      //TODO: if you want some kind of trigger, put it here

      return false;
    }
然后使用它

    Perform("ZamanSetreset");
您可以合并这些调用:

    if (Perform("ZamanSetreset") &&
        Perform("Action2") &&
        Perform("Action3")) {
       // If all actions complete
    }
    else {
       // At least one action is not performed
    } 
捕获NullReferenceException至少是一种误导,最多也是一种危险的想法。让我们提取一个局部方法

    bool Perform(string name) {
      var actuator = actuator1.Members[name];

      if (actuator != null) {
        actuator.Active = true;

        actuator.Connect(); 

        return true;
      }

      //TODO: if you want some kind of trigger, put it here

      return false;
    }
然后使用它

    Perform("ZamanSetreset");
您可以合并这些调用:

    if (Perform("ZamanSetreset") &&
        Perform("Action2") &&
        Perform("Action3")) {
       // If all actions complete
    }
    else {
       // At least one action is not performed
    } 

是的,从try catchcatch NullReferenceException e{MethodStatic.TriggerMethode;}开始?我可能会遇到太多这种异常。那么,在没有try catch的情况下,我如何才能做到这一点呢?检查对象是否为null actuator1.Members[ZamanSetSet]=空?.Active=true;是的,从try catchcatch NullReferenceException e{MethodStatic.TriggerMethode;}开始?我可能会遇到太多这种异常。那么,在没有try catch的情况下,我如何才能做到这一点呢?检查对象是否为null actuator1.Members[ZamanSetSet]=空?.Active=true;我经常遇到这种例外情况。那么,在没有try-catch的情况下,我如何才能做到这一点呢?我可能会遇到太多这种异常。那么,在没有try-catch的情况下,我如何才能做到这一点呢?我可能会遇到太多这种异常。那么,在没有try-catch的情况下,我如何才能做到这一点呢?我可能会遇到太多这种异常。那么,我怎样才能在没有试捕的情况下做到这一点呢?