对于我的一些程序和函数,我已经对参数进行了各种检查,以便在参数以某种方式超出范围时强制停止执行。我发现最好在我自己的代码中检查这一点,而不是由于内存写入错误而导致异常崩溃。
考虑简单的代码:
PROCEDURE Test(OneDigitNumbers:BYTE);
BEGIN
IF OneDigitNumbers>9 THEN ProduceErrorMessage;
END;
begin
Test( 1);
Test( 2);
Test( 9);
Test(12);
end.
实际上产生错误消息我没有问题,我唯一的“问题”是Delphi中的调试器总是指向创建异常的过程。是否有创建此异常或错误消息的方法,以便调试器指向参数超出范围的行?在我的示例中,它应该指向:
Test(12);
并且可能会说“参数超出范围。有效范围是 0-9。传递的参数是:12”
甚至说这是不可能的答案也会很有用(如果您确定这是不可能的),因为那样我就会忘记这一点并制定一种替代的调试方法。