尝试在Navision中打印文档时,我们收到错误:
翻译: 此消息适用于C / AL程序员: 对成员ActivePrinter的调用失败。 Microsoft Word返回以下消息:打印机错误。
此行发生错误:
wrdApp.ActivePrinter := InteractLogEntry."Printer Name";
InteractLogEntry是一个列表,其中填充了本地系统上安装的每台打印机。
我的问题:如何处理此异常(Navision不支持通过try-catch处理异常)
我可以使用if-else语句来解决此问题吗?
答案 0 :(得分:2)
经典客户端中最好的工作尝试/捕获更换是放置 将代码崩溃到单独的代码单元的OnRun部分。
然后,您可以从另一个对象(代码单元,表单,报表等)调用代码 使用if子句
IF NOT MyCrashyCodeunit.RUN THEN BEGIN
// Errror handling here
END
答案 1 :(得分:0)
自Dynamics NAV 2016起,可以选择调用Codeunit并评估其返回值。
引入了Try函数(请参见函数的属性),并且可以将其设置为任何函数。在调用该函数并评估其布尔返回值时,将抑制错误并因此返回false。
更多信息:https://docs.microsoft.com/en-us/dynamics-nav/handling-errors-by-using-try-functions
重要信息:
由于不会回退try函数对数据库所做的更改,因此不应在try函数中包括数据库写事务。默认情况下,Microsoft Dynamics导航服务器配置阻止您执行此操作。如果try函数包含数据库写事务,则会发生运行时错误。