Lotus notes 在LotusNotes中有没有一种方法可以拥有全局(到文档)错误处理程序?

Lotus notes 在LotusNotes中有没有一种方法可以拥有全局(到文档)错误处理程序?,lotus-notes,lotus-domino,lotusscript,Lotus Notes,Lotus Domino,Lotusscript,我继承了一个LotusNotes应用程序,真正让我感到不安的是,每个函数/子/属性都有一个错误语句和错误处理程序标签,除了输入错误之外,它们都做同样的事情。此外,不幸的是,这个应用程序已经经历了几个版本和一些errorhandler:标签有其他版本没有的版本。我想规范和集中这种行为 有没有一种方法可以为给定的文档提供一个单一的错误处理程序,如果在文档中的任何位置出现错误,则调用该特定的错误处理程序 谢谢,每个脚本执行可以有一个错误处理程序。一个文档不能有一个全局文件。文档中激发的每个事件都会导致

我继承了一个LotusNotes应用程序,真正让我感到不安的是,每个函数/子/属性都有一个错误语句和错误处理程序标签,除了输入错误之外,它们都做同样的事情。此外,不幸的是,这个应用程序已经经历了几个版本和一些errorhandler:标签有其他版本没有的版本。我想规范和集中这种行为

有没有一种方法可以为给定的文档提供一个单一的错误处理程序,如果在文档中的任何位置出现错误,则调用该特定的错误处理程序


谢谢,

每个脚本执行可以有一个错误处理程序。一个文档不能有一个全局文件。文档中激发的每个事件都会导致新脚本的执行


也就是说,每个函数都有一个错误处理程序通常是有利的,但是如果它们实际上完全相同,那么这种优势就失去了。更好的做法是自定义它们,以便每个错误处理程序记录当前函数的名称。(当然,由于复制/粘贴的惰性,这在理论上通常比在实践中更有效。)

每个脚本执行可以有一个错误处理程序。一个文档不能有一个全局文件。文档中激发的每个事件都会导致新脚本的执行


也就是说,每个函数都有一个错误处理程序通常是有利的,但是如果它们实际上完全相同,那么这种优势就失去了。更好的做法是自定义它们,以便每个错误处理程序记录当前函数的名称。(当然,由于复制/粘贴的惰性,这在理论上通常比在实践中更有效。)

如果您有一个
On错误转到SomeLabel
语句(其中
SomeLabel
是代码实际使用的任何标签),则标签必须存在于包含该语句的同一个子/函数中,因此,从技术上讲,每个子/函数都需要一个单独的处理程序

然而,有些事情可能会使事情简单化

如果一个子函数调用另一个子函数,而内部子函数没有错误处理程序,而外部子函数(调用者)有错误处理程序,则内部子函数中的错误将被调用者中的处理程序捕获。
此设置提供的信息较少(无法获取内部子函数/函数中发生错误的行号),但如果您有任何子函数/函数不能产生错误,或者只有一行可能发生错误,则此设置可能会有所帮助

如果您有一些静态消息文本或日志记录在许多错误处理程序中是相同的,那么您可以使用Globals形式的子/函数(或在脚本库中以绝对减少代码重复),其中包含错误处理程序的静态部分,并为可变部分获取参数(错误消息、行号和子/功能名称)

最后,只要代码声明包含
%include“lsconst.lss”
或使用包含相同
%include
语句的脚本库,此代码将生成当前子/函数的名称,并使在许多地方使用相同的错误处理程序变得更容易:

GetThreadInfo(LSI\u线程\u过程)


另一个函数,
LSI_Info
也可以为您提供当前子/函数的名称,但IBM不支持该函数,因此应避免使用该函数。

如果出现
错误,请转到SomeLabel
语句(其中
SomeLabel
是代码实际使用的标签),标签必须存在于包含该语句的同一个子/函数中,因此,从技术上讲,每个子/函数都需要一个单独的处理程序

然而,有些事情可能会使事情简单化

如果一个子函数调用另一个子函数,而内部子函数没有错误处理程序,而外部子函数(调用者)有错误处理程序,则内部子函数中的错误将被调用者中的处理程序捕获。
此设置提供的信息较少(无法获取内部子函数/函数中发生错误的行号),但如果您有任何子函数/函数不能产生错误,或者只有一行可能发生错误,则此设置可能会有所帮助

如果您有一些静态消息文本或日志记录在许多错误处理程序中是相同的,那么您可以使用Globals形式的子/函数(或在脚本库中以绝对减少代码重复),其中包含错误处理程序的静态部分,并为可变部分获取参数(错误消息、行号和子/功能名称)

最后,只要代码声明包含
%include“lsconst.lss”
或使用包含相同
%include
语句的脚本库,此代码将生成当前子/函数的名称,并使在许多地方使用相同的错误处理程序变得更容易:

GetThreadInfo(LSI\u线程\u过程)

另一个函数,
LSI_Info
,也可以为您提供当前子/函数的名称,但IBM不支持,应该避免使用