Ibm midrange 用于处理接收器值过小错误的监视器块

Ibm midrange 用于处理接收器值过小错误的监视器块,ibm-midrange,rpgle,Ibm Midrange,Rpgle,如果我想处理接收器变量小于监视器块中所需大小的情况,我可以这样写: D Tgttoosmall C 103 D Result S 11 2 D Source S 15 2 /Free Monitor; Result = Source; On-error Tgttoosmall; ... // Process exception here ... Endmo

如果我想处理接收器变量小于监视器块中所需大小的情况,我可以这样写:

D Tgttoosmall     C                   103 
D Result          S             11  2 
D Source          S             15  2
/Free
Monitor;
Result = Source;
On-error Tgttoosmall;
...
// Process exception here
...   
Endmon; 
/End-free 

但我想知道这是不是最好的做法

在开发和测试期间,最好突出显示所有异常。要从已知的可能性控制生产环境,监视未知错误不是一种好的做法。彻底的单元测试比oops更好

我觉得不错,我同意。看起来不错。块中的代码非常小,并且捕获了一个非常特定的错误。此外,您还使用了一个常量来表示错误代码,以使所有内容更具可读性。我在公司的其他程序中看到过,在on-error上没有提到错误代码,从而使其成为通用处理程序。你认为这是一件好事吗?我通常不使用带有On错误的特定代码。我经常问自己,“我只想捕获这一个特定的错误,还是可能发生的任何错误?”如果是后者,如果我以不同的方式处理错误,通常是这两个错误的组合。因此需要添加监视器块,因为几乎没有数据库字段的大小正在增加。在程序中将修改后的变量分配给较小的接收器的地方,我需要包括一个监视器块来处理可能出现的接收器太小的错误。。因此,我只捕获这个错误,就好像出现了任何其他错误一样,它们应该被捕获并突出显示。。