捕获异常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. ...
随机推荐
- Android 属性动画ObjectAnimator和ValueAnimator讲解
区别: ObjectAnimator 是直接对某个view进行更改. ValueAnimator 根据 TimeInterpolator 在不断产生相应的数据,来传进view ,view自己做改变. ...
- Spring 4.2框架中注释驱动的事件监听器详解
事件交互已经成为很多应用程序不可或缺的一部分,spring框架提供了一个完整的基础设施来处理瞬时事件.下面我们来看看Spring 4.2框架中基于注释驱动的事件监听器. 1.早期的方式 在早期,组件要 ...
- Android 如何永久性开启adb 的root权限【转】
本文转载自:https://www.2cto.com/kf/201702/593999.html adb 的root 权限是在system/core/adb/adb.c 中控制.主要根据ro.secu ...
- 【转】hibernate懒加载的问题,failed to lazily initialize a collection of role
hibernate懒加载的问题,failed to lazily initialize a collection of role hibernate懒加载的问题,failed to lazily in ...
- Codeforces Round #105 (Div. 2) E. Porcelain —— DP(背包问题)
题目链接:http://codeforces.com/problemset/problem/148/E E. Porcelain time limit per test 1 second memory ...
- codeforces C. Cows and Sequence 解题报告
题目链接:http://codeforces.com/problemset/problem/284/C 题目意思:给出3种操作:t = 1:在前 a 个数中每个数都加上x: t= 2:在数组末尾增加一 ...
- MySql服务未知原因消失了的终极解决办法
刚才突然MySQL-Front打开不了MySql,果不其然发现是MySql的服务不见了.想起可能是昨晚安装了PhpStudy的点了不要MySql的选项,它把我本身的MYSQL服务给卸载了. 解决办法 ...
- 使用grunt中遇到的问题
1.使用jshint进行代码检查时,grunt命令后报错: 因为出现了乱码,我猜测是因为编码原因导致的.遂在webstorm的setting中修改了编码为utf-8,问题解决.
- AJAX 方式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- http://blog.sina.com.cn/s/blog_6145ed810102vr8k.html
http://blog.sina.com.cn/s/blog_6145ed810102vr8k.html