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的情况下,我如何才能做到这一点呢?我可能会遇到太多这种异常。那么,我怎样才能在没有试捕的情况下做到这一点呢?