Java 异常处理 try catch finally throws throw 的使用和解读(一)
//最近的一个内部表决系统开发过程中,
//发现对异常处理还存在一些模棱两可的地方,
//所以想着整理一下
//主要涉及到:
//1.try catch finally throws throw 的使用和解读
//2.自定义异常的使用
//3.常见的运行异常
/**
* Java 异常处理
* try catch finally throws throw
* @author Ma San
*
*/
public class ExceptionTest {
// 函数可能发生异常时 两种处理办法
// 1.try catch 捕获并处理异常
// 2.throws 声明异常
/**
* try catch 捕获并处理异常
*/
public void function1(int index){
try {
// 以下代码抛出异常,并且被捕获
if(--index<0) throw new Exception("index out of 0");
} catch (Exception e) {
// catch 内处理异常
// TODO: handle exception
}
}
/**
* throws 声明异常
* @throws Exception
*/
public void function2(int index) throws Exception{
// 以下代码抛出异常
if(--index<0) throw new Exception("index out of 0");
}
// 比较 try catch 和 throws 的区别
// 前者会捕获异常并处理,后者只是声明会发生的异常,并不能捕获也不能处理
// throws声明异常,如果被抛出,最终也会被try catch 捕捉处理
// 如果程序中没有try catch 那么 该线程被终止,如果是主线程则程序会被终止
// try catch finally throws throw 语法规则和比较
// 1.try catch :捕获异常
// 2.finally : 任何情况下都会执行的代码
// 3.throws: 声明可能会发生的异常
// 4.throw: 抛出异常
//语法规则:
//(1):try代码块不能单独存在,后边至少有一个catch或者finally代码块
// 以下代码会发生编译错误
public static void main(String args[]) throws Exception{
try{
//代码
}
}
//(2):try代码快后边可以没有catch也可以有多个catch,可以没有finally也可以有一个finally
// 其中,如果catch 和 finally要共存,则finally 必须出现在catch的后面
// (3): try 代码块和catch、finally代码块是不同的作用域
// 在try代码块声明的变量 catch 和 finally不能访问
try
{
// 在try代码块中声明变量
int num = 0;
}
catch (Exception e)
{
num++; // 不合法,编译错误
}finally{
num = 9; // 不合法,编译错误
}
// 定义在try代码块外
int num = 0;
try
{
}
catch (Exception e)
{
num++; // 合法
}finally{
num = 9; // 合法
}
}
Java 异常处理 try catch finally throws throw 的使用和解读(一)的更多相关文章
- 【Java面试题】22 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
throws是获取异常throw是抛出异常try是将会发生异常的语句括起来,从而进行异常的处理,catch是如果有异常就会执行他里面的语句,而finally不论是否有异常都会进行执行的语句. thro ...
- Java基础学习总结(86)——Java异常处理机制Exception抛出异常时throw和throws用法详解
什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...
- java异常处理try catch finally
1 异常 1.1 异常处理的作用 在编程时,如果出现文件打开失败,读写文件就会异常退出.如果出现内存溢出错误,程序也会异常退出.如果不能对这些异常进行处理.程序则无法正常运行.所 ...
- java 异常处理try+catch
在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...
- JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义? 在try块中可以抛 出异常吗?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类, 并提供了良好的接口. 在 Java中,每个异常都是一个对象,它是 Throwable 类或其它子类的实例.当一个方法出 ...
- Java异常处理和设计
在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...
- Java异常处理和设计【转】
Java异常处理和设计 在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常 ...
- java异常处理之throw, throws,try和catch
转自 http://blog.csdn.net/zhouyong80/article/details/1907799 程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...
- 异常处理(try...catch...final 和 throw , throws)
1.传统(弱语言)处理异常方式 原理:利用判断来控制异常出现 publicclass Test01 { publicstaticvoid main(String[] args) { Scanner s ...
随机推荐
- PAT乙级 1065. 单身狗(25) by Python
1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对 ...
- 【原创】NuGet 出现“无法初始化 PowerShell 主机,如果将你的 PowerShell 执行策略设置设置为 AllSigned ,请先打开程序包管理控制台以初始化该主机” 错误的解决方法
现象: 网上的设置 AllSigned 等方法都无效..后来考虑可能跟命令行版本兼容性有关系,然后在注册表命令行配置里发现一 ForceV2 设置项,抱着试一试的心态改了下,果然解决了! 解决方法:修 ...
- C++ 头文件系列(sstream)
1. 简介 这个头文件主要定义了基于字符串类(string类)的流的4个模版: basic_stringbuf basic_istringstream basic_ostringstream basi ...
- 第一次AOP,附上使用DEMO,目前只供学习,不可用在生产环境
GIT代码地址:https://git.oschina.net/ruanjianfeng/Ruan.Framework.Core demo代码如下 public class ConsoleTimeAt ...
- Kafka 0.10.1.1 特点
1.Consumer优化:心跳线程可作为后台线程,提交offset,剥离出poll函数 问题:0.10新设计的consumer是单线程的,提交offset是在poll中.本次的poll调用,提交上次p ...
- [Selenium With C#学习笔记] Lesson-02 Web元素定位
使用Selenium来做自动化测试,一般的流程是:查找定位元素--->操作元素--->断言,那么第一步我们需要能够完成查找并定位元素,Selenium目前提供了8种基本定位方法,可根据实际 ...
- 【转】Jqgrid学习之ColModel API
ColModel 是jqGrid里最重要的一个属性,设置表格列的属性. 属性 数据类型 备注 默认值 align string left, center, right. left classes st ...
- git全部使用步骤
今天要讲的内容:项目管理和工具 Git:版本控制系统 Less:动态的css语言,提高编写CSS的效率 Gulp:项目自动构建工具,对html,css,js,image进行压缩,合并等操作. 一.什么 ...
- [前言] 实现一个Android电子书阅读APP
大家好,我是小方,我将在接下来的几篇文章中从零实现一个网络小说阅读器,从安卓编程最基础的部分讲起,直至成功完成我们的应用,从新建一个项目开始,不断添加新的代码,添加新的界面,循序渐进,涵盖所有我们需要 ...
- 2017-3-5 C#基础 函数
函数/方法:非常抽象独立完成某项功能的一个个体 函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 函数分为: 固定功能函数高度抽象函数 函数四要素:输入,输出,函数体,函数名 p ...