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