if 语句与try catch的问题?什么区别,何时该用 try catch?
网上看到例子:-----------------------例子开始-------------------inta=200,b=0;intc;try{c=a/b;}cat...
网上看到例子:
-----------------------例子开始-------------------
int a=200,b=0;
int c;
try
{
c=a/b;
}
catch(...)
{
ShowMessage("Can not devided by zero!");
}
“可是如果上面的例子用if…else…,就不能够显示else后面的结果了。” (这句话也是拷贝来的)
-----------------------例子结束-------------------
我觉得是可以的
我完全可以判断它的除数啊
int a=200,b=0;
int c;
if(b==0){
ShowMessage("Can not devided by zero!");
}else{
c=a/b;
}
这样不就行了吗?
捕获异常 抛出 异常 是不是多此一举?
是不是这样?
比如我现在 正在 服务器上 写一个文件
这时候同时 有另一个人 也在操作这个文件
这个时候就可能会 有异常发生
这个时候是需要 try catch 的?
我怎么知道哪个地方会出现异常,比如我 压根就不知道 1/0 是错误的,我该怎么办? 展开
-----------------------例子开始-------------------
int a=200,b=0;
int c;
try
{
c=a/b;
}
catch(...)
{
ShowMessage("Can not devided by zero!");
}
“可是如果上面的例子用if…else…,就不能够显示else后面的结果了。” (这句话也是拷贝来的)
-----------------------例子结束-------------------
我觉得是可以的
我完全可以判断它的除数啊
int a=200,b=0;
int c;
if(b==0){
ShowMessage("Can not devided by zero!");
}else{
c=a/b;
}
这样不就行了吗?
捕获异常 抛出 异常 是不是多此一举?
是不是这样?
比如我现在 正在 服务器上 写一个文件
这时候同时 有另一个人 也在操作这个文件
这个时候就可能会 有异常发生
这个时候是需要 try catch 的?
我怎么知道哪个地方会出现异常,比如我 压根就不知道 1/0 是错误的,我该怎么办? 展开
2个回答
展开全部
if可以进行简单的过滤, 但是, 由于机器或者说环境各异, 可能会产生一些无法预知的异常, 这是在开发阶段无法预知的, 所以就要用try...catch来捕捉, 而if是无法做到的.
从程序结构上来说:
if…else…属于程序结构中的分支结构;
try…catch…应该属于程序结构中的顺序结构,虽然说在出现异常的时候编译器会跳到捕获异常的入口处,但这和传统意义上的if…else…结构存在根本性的差别.
当不可预知有什么异常的时候,用try
当过多情况需要处理,用if就会太繁琐
当你需要观察的代码没有返回值的时候,if()当中没法作判断,必须用try
从程序结构上来说:
if…else…属于程序结构中的分支结构;
try…catch…应该属于程序结构中的顺序结构,虽然说在出现异常的时候编译器会跳到捕获异常的入口处,但这和传统意义上的if…else…结构存在根本性的差别.
当不可预知有什么异常的时候,用try
当过多情况需要处理,用if就会太繁琐
当你需要观察的代码没有返回值的时候,if()当中没法作判断,必须用try
展开全部
是你想太多了,也许是你没什么经验吧,
try catch 是捕获异常,在一切有可能出现异常的地方都用.否则你的程序就有可能要崩溃.
你现在写的程序是在自己用,以后你给别人用,你又怎么知道别人会怎么样去输入呢?
所以,这不是多此一举,反而是非常有用的.
我自己的项目中就经常在输入数字的地方用try catch,这样比你去判断是不是输入了数字要方便得多.
当然这只是我的用法,不是最好的.
try catch 是捕获异常,在一切有可能出现异常的地方都用.否则你的程序就有可能要崩溃.
你现在写的程序是在自己用,以后你给别人用,你又怎么知道别人会怎么样去输入呢?
所以,这不是多此一举,反而是非常有用的.
我自己的项目中就经常在输入数字的地方用try catch,这样比你去判断是不是输入了数字要方便得多.
当然这只是我的用法,不是最好的.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询