5个回答

Windows系统为什么越来越模糊化系统错误的描述?

NIghtdAxIs
5个点赞 👍

因为从编程的角度,报错信息的层层转译,很有难度。

打个比方,如果我们运行一个程序,磁盘空间不够,写不了数据,报错流程如下:
a) 硬盘驱动软件报错:
扇区 0x..... 无法写入,已经重试3次了。

b) Windows/Linux 操作系统转一手,翻译成:
disk full xxx 之类的。

c) 应用软件再转一手,翻译成:
磁盘空间满,您刚才的操作,数据没有保存成功,请删除部分文件,然后再试。


就算是 Windows 操作系统他很多组件,也是按应用软件来写的。一样有多道报错层层转译。

而报错层层转译,一直是一个大难题:
a) 很底层的报错信息,直接抛处理给用户看,用户看不懂。

b) 应用软件编程人员,转译一下报错信息,是很有必要的。
可惜,说句不客气的话,很多软件编程人员,连人际交流能力都堪忧,书面的文字,比如转译的报错信息,呵呵,不给你折腾能成日中语混合体,已经很不错了。
不能苛求。


----

当然了,我见过某著名软件公司,写的代码如下:

try
....
catch(Exception err){
save error: 数据格式错。
}


也就是,不论后台什么错,都告诉用户:数据格式错。
不服不行。

----

我也见过,有人将数据库的报错,直接放到用户操作界面:

Error: ORA-00933: SQL 命令未正确结束

然后用户一脸懵:啥玩意儿?啥叫 SQL、啥叫命令?啥叫未正确结束?



--------2023-12-13 补充,

报错层层转译,只是一方面。
另一方面,报错信息往往会推卸责任,这导致程序员们措辞也会稀奇古怪。

打个比方来说,如果一个软件报错:
Oracle 数据库报错了/网络出错,请稍后重试。

这个报错的原始信息,肯定不是 Oracle 数据库。
因为,没人主动说:这次是我错

这点用于问题调查时,很重要。
如果错误信息是“Oracle 数据库报错了”,那报这个错的,是调用 Oracle 数据库的应用软件。Oracle 数据库不会说自己错,它只会推卸责任地说:磁盘空间满.......

编辑于 2023-12-14 23:51・IP 属地美国
杰克伦敦尘
自由评论 (0)
分享
Copyright © 2022 GreatFire.org