|

易语言没有异常,想要清晰的表示函数到底执行成功了没就必须得定义一大堆错误码,写起来及其麻烦。
这就导致很多人写的模块的错误处理也是一言难尽:
1. 情况最差的:压根就不写错误处理,管他三七二十一,往下执行就得了。出错的情况下返回的是什么?我咋知道?
2. 稍微好一点的:返回一个逻辑型表示是否执行成功。缺点是一旦模块变得复杂,单独一个执行失败压根没法定位具体是什么错误。文件不存在?类没有初始化?参数格式不正确?还是其他错误?
3. 最好的情况:上面说的返回一个错误码表示具体的错误,然后手动查表
比如精易模块的 ODBC 数据库封装。
|
读字段双精度 | 双精度小数型 | | |
参数_记录集句柄 | 整数型 | | | | 参数_字段名 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局部_实际长度 | 整数型 | | | ret | 短整数型 | | | value | 双精度小数型 | | | 局部_序号 | 整数型 | | |
局部_序号 = 字段名到序号 (参数_记录集句柄, 参数_字段名 ) 如果真 (局部_序号 = -1 ) 返回 (0 )ret = SQLGetData (参数_记录集句柄, 局部_序号 + 1, #SQL_C_DOUBLE, 取指针双精度_ (value), 8, 局部_实际长度)返回 (value )
这里的 ret 压根就没判断
|
cha询 | 整数型 | | |
参数_SQL语句 | 文本型 | | | | 参数_光标类型 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ret | 短整数型 | | | hSTMT | 整数型 | | |
ret = SQLAllocHandle ( #SQL_HANDLE_STMT, m_hDBC, hSTMT ) 如果真 (ret ≠ #SQL_SUCCESS ) 返回 (0 ) 如果真 (是否为空 (参数_光标类型 ))  参数_光标类型 = #光标类型_键集 ret = SQLSetStmtAttr (hSTMT, #SQL_ATTR_CURSOR_TYPE, 参数_光标类型, 0)ret = SQLExecDirect (hSTMT, 参数_SQL语句, 取文本长度 (参数_SQL语句 )) 如果真 (ret ≠ #SQL_SUCCESS ) SQLFreeHandle ( #SQL_HANDLE_STMT, hSTMT ) 返回 (0 )返回 (hSTMT)
这里的 ret 也只是判断了 #SQL_SUCCESS 的情况,其他统统忽略。
我写的一个 SQL cha询总是返回假,搞了半天没搞好,实在不行最后把整个类抠出来放到自己的源码里,手动输出错误信息,根据错误信息去百du才知道引号错了,要用单引号,用双引号就报错。
|
|