您的位置 首页 > 数码极客

java程序员必备的基础知识_java异常机制

java的异常机制

一、零引发的血案

1、看问题

首先、问大家一个问题:

public static void main(String[] args) { int num1 = 10; Scanner scanner = new Scanner); int num2 = (); int res = num1 / num2; Sy(res); Sy("后边还有代码呦!"); }

请问:如果我输入了 “abc” 或者 0 程序应该怎么运行呢?

abc Exception in thread "main" java.u at java.u(Scanner.java:864) at java.u(Scanner.java:1485) at java.uInt(Scanner.java:2117) at java.uInt(Scanner.java:2076) at cn.i(Demo.java:13) 0 Exception in thread "main" java.lang.ArithmeticException: / by zero at cn.i(Demo.java:14)

程序他在想办法告诉你,你错了!程序是永远找不到女朋友的,因为程序员只有真的是自己错了,他才会承认自己错了。

而且有个很重要的问题,程序碰到异常就不在继续执行后边的代码了,真是悲剧,很明显这不是你想要的。

世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。

2、解决方案

其实这个例子的解决方案至少有两种:

(1)、运行前对参数进行校验

public static void main(String[] args) { int num1 = 10; Scanner scanner = new Scanner); int num2 = (); if (num2 == 0){ Sy("除数不能为零"); return; } int res = num1 / num2; Sy(res); Sy("后边还有代码呦!"); }

这样是不是就解决了除数不能为零的问题。

(2)、出了问题想办法解决

public static void main(String[] args) { // 尝试执行 try { int num1 = 10; Scanner scanner = new Scanner); int num2 = (); int res = num1 / num2; Sy(res); } catch (Exception e){ // 遇到问题,找出问题 Sy("除数不能为零!"); // 解决问题 e.printStackTrace(); // 把问题的内容打印出来 } Sy("后边还有代码呦!"); }

这样也可以让程序继续执行,我们发现我们找出的问题,他叫

Exception,也是的java类。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“java864”边界阅读