是否可以在语句之外使用 throwtry{} catch{}
语句?在我的代码(CRM 2011 中的插件编程)中,我只想向用户显示一条自定义消息。如果 throw 不起作用,那我该怎么做?
有什么建议吗?
是否可以在语句之外使用 throwtry{} catch{}
语句?在我的代码(CRM 2011 中的插件编程)中,我只想向用户显示一条自定义消息。如果 throw 不起作用,那我该怎么做?
有什么建议吗?
要在插件中将消息传回给用户,您可以简单地抛出异常
throw new Exception("Your message here!");
不必在 try/catch 块中 - 事实上,如果是,则消息将被禁止并且用户不会看到它。
是的,正如其他答案所述,您可以抛出异常并阻止插件中的任何进一步操作。但是,由于您具体指的是使用 Dynamics CRM 插件进行编程,因此我建议您只根据MSDN 指南InvalidPluginExecutionException
将自定义消息反映给您的用户。
您可以选择在 Web 应用程序的对话框中显示自定义错误消息,方法是让插件抛出 InvalidPluginExecutionException 异常,并将自定义消息作为 Message 属性值。建议插件仅将 InvalidPluginExecutionException 传递回平台。
因此,如果您在插件中遇到逻辑错误(例如,标题字段为空),您可以:
throw new InvalidPluginExecutionException("Title must not be blank");
是的,
throw new Exception("your message");
或者
throw new Exception(objectExtendedFromExceptionClass);
是否可以在 try{} catch(){} 语句之外使用 throw 语句?
绝对地。异常将向上传播堆栈到最近的匹配捕获块。当然,你必须在某处有一个 catch 块来做正确的事情……但它不必在同一个方法甚至同一个类中。
当然,例外是否是最合适的解决方案是另一回事 - 这取决于上下文。
来自 MSDN:抛出异常
异常包含名为 StackTrace 的属性。此字符串包含当前调用堆栈上的方法名称,以及为每个方法引发异常的文件名和行号。
是的,你可以抛出异常。像这样
throw new Exception("Your Error here!");