作者james732 (好人超)
站内Programming
标题Re: [问题] 请问exception能用if else取代吗?
时间Tue Aug 16 10:09:23 2011
※ 引述《poopoo888888 (阿川)》之铭言:
: 大家好 小弟是程式新手
: 最近在学习上遇到了一个观念问题
: 就是exception的用处
: 我知道它用来解决例外状况
: 可是这样的功能 不能用一连串的if、else if、else来处理掉吗?
: 平时写code也会用if.. else来确保一些变数内容的正确性不是吗?
: 还是说exception的确完全可用if else取代
: 但是用exception有其他方便的地方?
: 烦请版上各位大大解惑了 谢谢!
以前没有 exception 的时候,常常会看到这种程式码
(-1这个数值常用在发生错误时回传,而 perror 可以印出错误原因)
if (function1(xxx) == -1) {
perror("ERROR: ");
exit(1);
}
if (function2(yyy) == -1) {
perror("ERROR: ");
exit(1);
}
如果有了 exception :
try
{
function1(xxx);
function2(xxx);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.Exit(1);
}
程式码变得比较简洁、而重覆的程式码也变少了
而且把所有「正常执行」的程式与「错误处理」的程式分开
对架构更能一目了然
C语言就是完全没有 exception,全部都要用 if-else 来写
它仍然是很好用的程式语言,不过有的时候真的会觉得很烦...XDD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.35.184.77
1F:→ james732:我以为我在C#板...orz 114.35.184.77 08/16 10:13
2F:推 poopoo888888:不懂语法 但我懂您的意思 非常谢谢! 61.231.25.104 08/16 10:14
3F:推 lmr3796:fun()==-1在unix programming很常见 140.112.217.3 08/16 10:35
4F:→ lmr3796:很多系统提供的函式库出错时会回来-1 140.112.217.3 08/16 10:36
5F:→ lmr3796:然後把errno设回某个值,perror函式就是 140.112.217.3 08/16 10:36
6F:→ lmr3796:print出前面的errno代表的意思是什麽错误 140.112.217.3 08/16 10:37
7F:推 poopoo888888:原来如此 感谢lmr大218.166.198.121 08/17 10:47