异常不要用来做流程控制,条件控制

异常机制的引入完善了Java语言的设计。

在理想状态下,用户输入永远正确,程序逻辑永远不出错,外部设备永远工作正常,所有的处理都是按照正确的路线运行,这样的程序确实不需要异常处理,但是现实世界中的程序充满了不良数据和问题代码,会时不时的报出错误,这个时候,语言的异常处理机制就可以派上用场了。

一、异常设计的初衷

异常是用在方法设计上的,是在方法执行过程中出现预期之外的结果时产生,这个界限难以清晰的界定,所以大家在使用异常的时候才会产生疑惑。总体来说,就是在可能出现一些不可控的错误且不能继续执行时,就可以以抛出异常的方式来处理。对于应用开发者来说,设计一个函数抛出异常的原因是因为调用了抛出异常的函数,不得不抛出来,第二个原因就是本身逻辑出现了无法忽略错误,须交给上游处理。一些可以通过检查的异常,就不要去try catch了,比如NullPointerException,比如这类代码是要禁止的;try { obj.method(); } catch (NullPointerException e) {…}

二、异常用作流程控制

try{...} catch(NullPointerException e){ fun(); }
也就是说,不要在catch中做业务逻辑运算,因为异常是用来解决程序中不可控的意外情况,而不是给你做条件分支的,同时,异常的处理效率比条件判断方式要慢很多。实际这么使用的的情况还是比较少。

三、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1、异常捕获 我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。 在你的代码中应该经常性的使用try-catch来进行异常捕获。 哪行代码有可能出现异常,你就踹它一脚。 语法: try { 可能会出现异常的代码; .... ... ... } //try和catch之间不能有其他的代码 catch { 出现异常后要执行的代码; } 执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。 如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了, 而是直接跳到catch中执行代码 2、变量的作用域 变量的作用域就是你能够使用到这个变量的范围。 变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。 在这个范围内,我们可以访问并使用变量。超出这个范围就访问不到了 3、switch-case 用来处理多条件的定值的判断。 语法: switch(变量或者表达式的值) { case 值1:要执行的代码; break; case 值2:要执行的代码; break; case 值3:要执行的代码; break; .......... default:要执行的代码; break; } 执行过程:程序执行到switch处,首先将括号中变量或者表达式的值计算出来, 然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行 该case所带的代码,执行完成后,遇到break。跳出switch-case结构。 如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在 default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构 什么都不。 4、循环结构 while循环: while(循环条件) { 循环体; } 执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立, 如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到 循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。 在while循环当中,一般总会有那么一行代码,能够改变循环条件,使之终有一天不再成立, 如果没有那么一行代码能够改变循环条件,也就是循环条件永远都成立,我们称之这种循环 叫死循环。 最简单的最常用的死循环: while(true) { } 特点:先判断,再执行,有可能一遍循环都不执行。 5、break 1)、可以跳出switch-case结构。 2)、可以跳出当前循环。 break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。 6、do-while循环。 语法: do { 循环体; }while(循环条件); 执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件, 如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。 特点:先循环,再判断,最少执行一遍循环体。
白盒测试控制流图通常用来描述程序的控制流程,它可以帮助测试人员更好地理解程序的执行过程和覆盖情况。下面是一些步骤来绘制白盒测试控制流图: 1. 确定程序的起始点和结束点:首先,你需要确定程序的入口点和出口点。这可以是主函数或其他关键函数。 2. 识别程序的基本块:将整个程序划分为基本块,即连续的一组语句,没有分支或循环的语句序列。每个基本块应具有一个单一的入口和一个单一的出口。 3. 标记条件语句:查找程序中的条件语句,如if语句和循环语句,并在其上方标记条件判断。 4. 创建控制流图节点:为每个基本块创建一个节点,并用箭头连接它们以表示程序的控制流。箭头从一个节点指向下一个节点,如果存在条件分支,则有多个箭头指向不同的节点。 5. 添加条件分支:对于每个标记的条件语句,根据条件的真假创建相应的箭头分支。这些分支可以指向不同的节点,表示不同的执行路径。 6. 标记循环:如果程序中存在循环结构,使用适当的符号(如循环开始和结束的箭头)标记循环的起始和终止点。 7. 检查控制流图:仔细检查绘制的控制流图,确保没有遗漏或错误的箭头连接,并且图形清晰易读。 请注意,绘制白盒测试控制流图需要对程序的结构和语法有一定的了解,以便准确地识别基本块、条件语句和循环结构。同时,还需要考虑程序中可能存在的异常处理和错误情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值