异常处理--使用try,catch
来源:互联网 发布:ubuntu服务器下载文件 编辑:程序博客网 时间:2024/06/06 04:03
程序中总避免不了出现各种意想不到的状况引发的错误,java中的错误以对象方式呈现为java.lang.Throwable的各种子类实例.
只要我们能捕捉包装错误的对象,就可以针对改错误做一些处理,如,试恢复正常流程,进行日志记录,以某种形式提醒用户.
话不多说,下来我们看一个简单的例子!
1.用户可以连续输入整数,最后输入0结束后会显示输入数的平均值
package dongmengyuan;/** * Created by dongmengyuan on 16-11-23. */import java.util.Scanner;public class Average { public static void main(String[] args) { Scanner input = new Scanner(System.in); double sum = 0; int count = 0; while(true) { int number = input.nextInt(); if(number == 0) { break; } sum += number; count++; } System.out.printf("平均 %.2f%n",sum/count); }}
正确输入每个整数,输出预期结果:
输入错误的话,
错误第一行,Exception in thread “main” java.util.InputMismatchException.
Scanner对象的nextInt()方法,可以将用户输入的下一个字符串剖析为int值,出现这个错误信息,表示不符合Scanner对象预期.
java中所有错误都被打包为对象,我们可以用try,catch代表错误对象后做出处理.
package dongmengyuan;/** * Created by dongmengyuan on 16-11-23. */import java.util.*;public class Average3 { public static void main(String[] args) { Scanner input = new Scanner(System.in); double sum = 0; int count = 0; while(true) { try { int number = input.nextInt(); if(number == 0) { break; } sum += number; count++; } catch (InputMismatchException ex) { System.out.printf("略过非整数输入 %s%n",input.next()); } } System.out.printf("平均 %.2f%n",sum/count); }}
执行结果为
//执行完catch区块之后,由于还在while循环中,所以还可以继续下一个循环流程
try,catch总结
运行程序时,JVM会尝试执行try区块中的程序代码,如果发生错误,执行程序会跳离错误发生点,然后比较catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是的话,就执行catch区块中的程序代码,执行完并不会再返回try区块.
0 0
- 异常处理--使用try,catch
- 使用try...catch的处理异常机制
- 【通用】 使用 try catch 处理异常
- 使用try...catch语句处理异常
- try catch 异常处理
- try-catch异常处理
- try catch 异常处理
- 异常处理(try catch)
- 异常处理@try catch
- 异常处理try.....catch
- try catch异常处理
- try catch异常处理
- 异常处理try catch
- 异常处理----使用 try…catch…finally 处理异常
- try catch处理异常处理
- 异常处理 try-catch 用法
- JAVA异常处理try...catch
- try catch异常处理例子
- disabled与readonly的区别
- DialogInput 字体
- NS2节点通信半径修改
- Oracle层次查询
- WEUI与AngularJS 翻译
- 异常处理--使用try,catch
- hadoop 伪分布式配置关键点
- Kensho: 低增速经济下的“投资剧本”
- 网络请求封装
- mysql中limit与in不能同时使用的解决办法
- 上传漏洞
- RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
- 服务器维护系列——快速重启VNC
- 用puts和printf()输出字符串