A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

try...catch...和if好像,是不是相同的原理,不同的关键字?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 申延超 于 2012-8-14 22:57 编辑

我认为这两个没直接关联,起的作用也不同呀,判断的条件完全不同
try
{
    代码1  //可能出错的代码   例如    int a=convert.ToInt32(console.readline());    当用户输入的不是数字而导致不能转换为int类型时,便产生错误
    代码2  //当代码1出错后,不再继续执行代码2及后续代码,直接跳转到catch
}
catch
{
  代码   //当上面个大括号中的代码出错后才执行,不出错不执行
}


if(条件)
{
语句
}   
条件为true则执行下面括号中的语句,为false则不执行

这两个有更本上的区别

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
     这个在理解上是可以这么认为的,都是如果true则   “成功执行”   其内部的语句,如果为false,则执行其他语句。。。但是  if只能作为条件是否执行的判断,但是try /catch 不仅可以执行,如果try内部语句执行时出错,可以捕捉到异常,跳入catch语句执行。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
你所说的原理应该是他们的实现语句吧,是不一样的。当然你所觉得相似的地方应该是他们都是分支结构,都有一个条件判断。但区别还是相当大的。try-catch主要是捕获异常的,而if语句则是条件判断语句。他们的用法是截然不一样的,没有重叠的地方哦。try-catch能捕获异常,这里if语句是做不了的啊。而if语句可以判断条件,然后再选择是否执行里面的语句,这也是try-catch语句没法实现的。
同学,多敲代码,其义自见。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
try{}catch{}中,try{}后面的语句不进行判断就执行,if()是先判断在执行{}中语句,而且try{}执行的时候,是捕捉错误的,只有有错误的时候,才会跳入catch{}执行,而if()判断的条件范围就广了,包括错误;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
首先原理就不同吧,if(必须是结果一个布尔型的值){执行代码}然后else if {代码}
try是直接接{这里面可能抛某异常}然后catch(异常类型){代码}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马