捕获异常try-catch-finally
异常分类
try-carch-finally出现规则
return关键字的使用
finally中慎用return,虽然语法上没错,但是由于finally的强制执行,影响逻辑上需要return的值
package com.mpp.test; import java.util.InputMismatchException;
import java.util.Scanner; public class TryDemoOne {
public static void main(String[] args) {
/* //要求:定义两个整数,输出两数之商 int one = 12;
int two =2;
System.out.println("one和two的商是:"+one/two);
*/ //要求:定义两个证书,接受用户的键盘输入,输出两数之商
Scanner input = new Scanner(System.in);
System.out.println("=========运算开始=======");
try {
System.out.print("请输入第一个整数:");
int one = input.nextInt();
System.out.print("请输入第二个整数:");
int two = input.nextInt();
System.out.println("one和two的商是:" + one / two);
}
//多重catch结构
catch (ArithmeticException e){ //算数异常
System.exit(1); //终止程序运行
e.printStackTrace(); //打印错误信息,出现位置随机,无固定位置
System.out.println("除数不允许为零");
}
catch (InputMismatchException e){
System.out.println("请输入整数");
e.printStackTrace();
}
catch (Exception e){//当还有不可知异常被抛出时,放一个Exception捕获所有异常
System.out.println("出错");
}
finally {//无论怎样都会执行的代码
System.out.println("=========运算结束=======");
} }
}
return慎用实例:
package com.mpp.test; import java.util.Scanner; public class TryDemoTwo {
public static void main(String[] args) {
int res = test();
System.out.println("one和two的商是:" + res);
} public static int test(){
Scanner input = new Scanner(System.in);
System.out.println("=========运算开始=======");
try {
System.out.print("请输入第一个整数:");
int one = input.nextInt();
System.out.print("请输入第二个整数:");
int two = input.nextInt();
return one/two;
}
catch (ArithmeticException e){ //算数异常
System.out.println("除数不允许为零");
return 0;
}
finally {//无论怎样都会执行的代码
System.out.println("=========运算结束=======");
// return -10000000; finally中慎用return,虽然语法上没错,但是由于finally的强制执行,影响逻辑上需要return的值
}
}
}
捕获异常try-catch-finally的更多相关文章
- ASP.NET(C#)中的try catch异常处理机制
在开发一个Umbraco平台系统的过程中,遇到了问题. 写的代码如下 fileUrl = MediaHelper.GetMediaUrl(Convert.ToInt32(publishedConten ...
- 我敢说你不一定完全理解try 块,catch块,finally 块中return的执行顺序
大家好,今天我们来讲一个笔试和面试偶尔都会问到的问题,并且在工作中不知道原理,也会造成滥用. 大家可能都知道,try 块用来捕获异常,catch块是处理try块捕获的异常,finally 块是用来关闭 ...
- C++异常处理解析: 异常的引发(throw), 捕获(try catch)、异常安全
前言: C++的异常处理机制是用于将运行时错误检测和错误处理功能分离的一 种机制(符合高内聚低耦合的软件工程设计要求), 这里主要总结一下C++异常处理的基础知识, 包括基本的如何引发异常(使用th ...
- 异常 try catch finally return 执行关系 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Java finally语句是在try或catch的retrurn之前还是之后执行
若try或catch中没有return语句,则按正常执行流,从上到下,finally里的所有修改都生效. 这里讨论的是try或catch里有return或throw语句的情形,此情形比较让人迷惑. 总 ...
- throws、throw和try catch
在学习代理模式的时候,编写动态生成代理类.java文件时,用try{}catch(){}捕获异常发现catch(Exception e)报错,得换成catch(Throwable e),然后又查了查两 ...
- 22 C#中的异常处理入门 try catch throw
软件运行过程中,如果出现了软件正常运行不应该出现的情况,软件就出现了异常.这时候我们需要去处理这些异常.或者让程序终止,避免出现更严重的错误.或者提示用户进行某些更改让程序可以继续运行下去. C#编程 ...
- 【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!
目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常thro ...
- Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws
笔记: /** 异常处理机制: 抓抛模型 * 1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径! * 2."抓", 抓住异常 ...
- 【Unity|C#】基础篇(15)——异常处理(try/catch/throw)
[学习资料] <C#图解教程>(第22章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
随机推荐
- Struts2中的redirect参数传递
在Action之间传递参数有如下方法: (方法一): Xml代码 1. <result name="topic" type="redirect">f ...
- 3个CCIE考官对一个高级工程师的面试题
3个CCIE考官对一个高级工程师的面试题 转载 时间:2015-7-10 原文转载: 1.现在的6509及7609,SUP720交换带宽去到720G,是不是可以说7609/6509 可以取代一部分GS ...
- [bzoj 3720] Gty的妹子树 (树上分块)
树上分块(块状树) Description 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕-- Gty神(xian)犇(chong)从来不缺妹子-- 他来到了 ...
- Java GET和POST请求
从表面来看GET和POST请求: GET请求是在url后直接附上请求体,url和请求体之间用"?"分割,不同参数之间用"&"分隔,%XX中的XX为该符号 ...
- opengl in medical imaging
医学可视化 http://schorsch.efi.fh-nuernberg.de/roettger/index.php/Lectures/MedicalVisualization http://ww ...
- ssh整合 小例子
实现了用户的查插删改操作. 原理:struts负责接收.分发请求.spring采用面向接口编程的思想整合整体框架,负责连接数据库.hibernate负责操作数据库语言. 思路: 1.配置struts的 ...
- COGS【345】共荣圈 && 【426】血帆海盗
题面 UPD:COGS 貌似进不去了,链接失效就删掉了. 如果你不小心看到了题目评论区,那你就会知道这是一道双倍经验题,另一题的链接见题目评论区…… 网络流+tarjan好题,但如果你真的的理解了网络 ...
- BZOJ_1671_[Usaco2005 Dec]Knights of Ni 骑士_BFS
Description Bessie is in Camelot and has encountered a sticky situation: she needs to pass through t ...
- springMVC之HttpServletRequest的getParameterMap()
request.getParameterMap()的返回类型是Map类型的对象,也就是符合key-value的对应关系,但这里要注意的是,value的类型是String[],而不是String. 得到 ...
- 「LuoguP2252」 取石子游戏(威佐夫博弈
[P2252]取石子游戏 - 洛谷 题目背景 无 题目描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以 ...