当应用程序调用部件提供的对象的方法时,该方法可以通过两种途径来提供错误信息。
为部件选择错误生成策略时,有很多编程因素需要权衡。但是,最重要的是开发人员使用部件是否方便。
例如,如果方法返回的是错误值,那么使用部件的开发人员就必须使用内部错误处理,也就是说,开发人员必须在调用方法后测试返回值。这就是 Windows API 调用的工作方式。
另一方面,如果生成错误,开发人员就可以选择实现内部错误处理 (On Error Resume Next) 或编写错误处理例程 (On Error GoTo)。这种灵活的代码风格是 Basic 开发人员很熟悉的。
无论采用哪种错误生成策略都要保持一致。开发人员不喜欢既要测试一些方法的返回值又要捕获另一些方法生成的错误。部件的使用越困难,代码重用的好处就越小。
如果决定返回错误值而不是产生错误,那么,所有的返回值都应该是错误代码。这就是说如果一个方法同时返回一个数据值,则必须对该数据使用 ByRef 参数。虽然这对于方法的使用者来说有些不便,但是,比起为了在使用数据值之前判断它是否代表一个错误,而必须测试返回值的数据类型,还是要方便的多。
注意 使用进程外部件的客户应用程序应该使用某种形式的错误处理,因为下面的基本进程间通讯层的失败会在客户应用程序中产生错误。
详细信息 “由部件生成错误”讨论由 ActiveX 部件生成错误的标准和技术。