其实1和2用起来都差不多的,区别仅仅是你到底用if去判断还是try去判断
而且感觉catch的过程会比较卡,所以一般我习惯用if自己做判断
3很少用,除非是函数本身就在form里,否则在类里要直接messagebox.show,一是还要using system.form,二也不是很友好
有些时候,错误可以不用弹窗的形式,而是用label来显示
比如登录框,每次输入错误都弹出个东西,就不如在文本框后面直接红字显示更友好
而且感觉catch的过程会比较卡,所以一般我习惯用if自己做判断
3很少用,除非是函数本身就在form里,否则在类里要直接messagebox.show,一是还要using system.form,二也不是很友好
有些时候,错误可以不用弹窗的形式,而是用label来显示
比如登录框,每次输入错误都弹出个东西,就不如在文本框后面直接红字显示更友好
比如通信过程中,为防止错误的通信数据更改当前数据,要加各种校验
这个校验过程很复杂,而且各种地方都会调用,所以会用函数的方式
而校验是否成功,一定要返回个bool值让调用它的程序知道
那么这里如果直接抛出异常或者弹出窗体,程序可能就执行部下去了
而现实是,其实程序只要知道数据有问题,就丢弃掉,客户端超时会自动重新发来数据请求
用的485通信模拟一个电量电度表
通信过程中要校验命令格式和数据格式
要做各种判断
这些判断都用函数
根据错误的不同,给客户端返回不同的应答这个程序因为是自动在运行,没有人去操作它,只是响应客户端的请求,所以弹出窗口是不可以的,只能自动处理
而且针对不同的错误指令,都要有响应,好让客户端知道发出的指令是哪里不对,避免出现无响应摸不着头脑的情况
所以我也尽量避免直接抛出catch,不让异常抛出到最外层去.那样最外层的catch里要处理的内容太多了
如果返回值是空,说明运行正常,如果不为空,直接显示字符串就行了.
甚至能告诉你到底是哪一行出现的错误,错误原因是什么参数错误,或者数组溢出之类的
不过也只是调试的时候有用,直接给用户看有点不友好.用户根本看不懂嘛.
除非是像微软或oracle那种,因为错误信息量很大,而且还要附带解决办法,所以都输出给用户有点不现实
就只能是先返回个错误码,然后让用户自己上网上找对应的错误码如何解决.
如果返回值是空,说明运行正常,如果不为空,直接显示字符串就行了.
我一般使方法返回bool 消息返回文本 或者其他的对象都可以 这样个人觉得很好用,直接判断方法返回值 成功执行返回true就不用管错误信息了 (因为绝对没有错误信息) false的时候就去获取错误消息 就OK啦 具体的消息怎么写 那就看自己咯
我的意见是:
底层的方法不需要管处理异常,恰恰相反,它还应该主动地抛出一些异常, 而不是去catch它。
我看到一个同事写的代码,个个方法都加try catch把整个方法的主体框起来,可悲的是,他还觉得这样自己好象是工作很负责似的。对于逻辑上能处理的一些问题,不要抛异常,比如被0除,空引用等等。处理异常应该是上层,甚至是界面层的事情。