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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 三生石 中级黑马   /  2014-3-5 21:13  /  1140 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java中的异常和返回值有什么区别?

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
我感觉异常是在程序发生编译时错误和运行时错误而产生的,并且将所出现的异常包装成对象。异常对象的产生不是程序员主观生成的,而是客观产生的。而返回值则是方法正常执行完毕时根据需要返回给上一级调用对象返回的一个对象,也可以不返回。返回值是程序员根据特定需要主观生成的。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
对于计算机程序而言,我们无法保证自己写的程序永远不会出问题,无法保证用户会按照我们的意愿合法输入,但我们可以尽可能预知所有可能发生的情况,尽可能让程序在糟糕的情况下运行,这是就需要异常,异常保证程序具有较好的容错性。
而返回值是方法的结果反映,是一个返回类型给非void的方法必须实现的

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
从逻辑上讲,函数的返回值是它的求值结果,是“预期的”、“正常的”结束函数求值得到的结果,而异常是发成错误,函数求值无法正常进行的时候必须处理的情况。举个例子,f(x) = abs(x)的导函数,在x>0的时候求值结果是1,在x<0的时候求值结果是-1,而在x==0的时候函数没有定义,可以理解为“异常”,因为是没有返回值的。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
返回值是函数正确运行返回的结果
异常是编译、运行时的语法错误,或者没有代码逻辑不够严谨,而执行时正钻了这没考虑到的部分导致程序没有按预想的轨迹运行。
我觉得编译器抛出的异常也算是编译器进行处理之后的返回值吧,而我们自己写的代码也可以返回错误信息,自己控制返回信息,不知这种理解可对?

评分

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

查看全部评分

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