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 ...
随机推荐
- websevice(Web服务)基础
webservice简介: 1.WebService到底是什么? WebService是一种跨编程语言和跨操作系统平台的远程调用技术.所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户 ...
- js获取浮动(float)元素的style.left值为空的解决办法
解决办法: 1.使用行内样式设置元素的top和left值; 2.or直接获取元素的offsetLeft得到相关数值,还不需要parseInt 问题原因: 如果父div的position定义为relat ...
- find查找命令
find # 格式 find [路径] [参数] [表达式] -exec 指令 {} \ ; -{} 代表find找到的文件 -\ 禁止转意 : 表示本行指令结束 # find /sbin -type ...
- Windows Form线程同步
.Net多线程开发中,经常需要启动工作线程Worker thread处理某些事情,而工作线程中又需要更新主线程UI thread的界面状态.我们只能在主线程中操作界面控件,否则.Net会抛出异常. 那 ...
- PHP连接数据库:封装成类
php连接数据库,操作他增删改查等操作,其中要多次连接数据库,每个页面也需要连接数据库,更改数据会及其麻烦: 为了便于数据库的更改,我们可以把固定的那几句话封装成类,这样虽然代码量也差不多,但是有利于 ...
- MySQL备份说明
第一次发布博客,发现目录居然不会生成,后续慢慢熟悉博客园的设置.回正文--- 1 使用规范 1.1 实例级备份恢复 使用innobackupex,在业务空闲期执行,考虑到IO影响及 FLUSH TAB ...
- Ansible 系列之 Ad-Hoc介绍及使用
Ad-Hoc 介绍 一.什么是ad-hoc 命令? ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令.就相当于bash中的一句话shell.这也是一个好的地方,在学习ansible ...
- Laravel路由
Laravel安装,这里使用一键安装包. 使用PHP内置的Web服务器,在PHP文件夹下运行命令行 php -S 0.0.0.0:1024 一.设置路由 路由文件在app\HTTP\routes.ph ...
- Java基础之路(一)下--引用数据类型之数组
上次我们说了java的基础数据类型,今天我们就来说一下引用数据类型中的数组. 什么是数组 数组:存储在一个连续的内存块中的相同数据类型(引用数据类型)的元素集合. 数组中的每一个数据称之为数组元素,数 ...
- 《C#语言和数据库技术基础》单词必备
<C#语言和数据库技术基础> 第一章1..NET Framework 框架2.sharp 尖锐,强烈的3.application 应用程序4.devel ...