//最近的一个内部表决系统开发过程中,
//发现对异常处理还存在一些模棱两可的地方,
//所以想着整理一下
//主要涉及到:
//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 的使用和解读(一)的更多相关文章

  1. 【Java面试题】22 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

    throws是获取异常throw是抛出异常try是将会发生异常的语句括起来,从而进行异常的处理,catch是如果有异常就会执行他里面的语句,而finally不论是否有异常都会进行执行的语句. thro ...

  2. Java基础学习总结(86)——Java异常处理机制Exception抛出异常时throw和throws用法详解

    什么时运行时异常?什么是非运行时异常? 通俗的讲: 运行时异常:就是编译通过,运行时就崩了,比如数组越界. 非运行时异常:就是编译不通过,这时就得必须去处理了.不然就没法运行了. 全面的讲: Thro ...

  3. java异常处理try catch finally

    1       异常 1.1      异常处理的作用 在编程时,如果出现文件打开失败,读写文件就会异常退出.如果出现内存溢出错误,程序也会异常退出.如果不能对这些异常进行处理.程序则无法正常运行.所 ...

  4. java 异常处理try+catch

    在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...

  5. JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义? 在try块中可以抛 出异常吗?

    Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类, 并提供了良好的接口.        在 Java中,每个异常都是一个对象,它是 Throwable 类或其它子类的实例.当一个方法出 ...

  6. Java异常处理和设计

    在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...

  7. Java异常处理和设计【转】

    Java异常处理和设计 在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常 ...

  8. java异常处理之throw, throws,try和catch

    转自 http://blog.csdn.net/zhouyong80/article/details/1907799  程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...

  9. 异常处理(try...catch...final 和 throw , throws)

    1.传统(弱语言)处理异常方式 原理:利用判断来控制异常出现 publicclass Test01 { publicstaticvoid main(String[] args) { Scanner s ...

随机推荐

  1. UltraEdit的配置

    这两天看同学门写的博客,很多人都是些的配置文件如何配置,看完以后感觉获益很大啊,从dos中不在需要输入javac.exe文件的地址就可以访问到javac的文件,为我们的java的编译提供了很大的帮助. ...

  2. javase基础回顾(二)LinkedList需要注意的知识点 阅读源码收获

    我们在学习这一块内容时需要注意的一个问题是 集合中存放的依然是对象的引用而不是对象本身. List接口扩展了Collection并声明存储一系列元素的类集的特性.使用一个基于零的下标,元素可以通过它们 ...

  3. Frogs

    Problem Description There are m stones lying on a circle, and n frogs are jumping over them.The ston ...

  4. 杭电OJ2005——第几天

    /*第几天?Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  5. Mac上写C++

    用惯Windows的同学可能刚开始用Mac的时候并不知道如何写C++,我刚开始在Mac上写C++的时候也遇到过这个困扰,Mac上并没有Windows上自己用习惯的Visual C++,下面我分享一下个 ...

  6. vsftp之虚拟用户

    1.安装: yum install -y vsftpd yum install -y lftp2.创建用户useradd virftp -s /sbin/nologin3.创建虚拟用户及其存放路径vi ...

  7. 每天一个Linux命令(03)--pwd

    linux 中用 pwd命令来查看“当前工作目录”的完整路径.简单地说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判断当前目录在文件系统内的确切位置. ...

  8. 偶尔发生File has been moved - cannot be read again,其实是个误解

    使用poi上传.xlsx文件时,出现如下错误 Exception in thread "pool-3-thread-2" java.lang.IllegalStateExcepti ...

  9. HTML5周记(一)

    各位开发者朋友和技术大神大家好!博主刚开始学习html5 ,自本周开始会每周更新技术博客,与大家分享每周所学.鉴于博主水品有限,如发现有问题的地方欢迎大家指正,有更好的意见和建议可在评论下方发表,我会 ...

  10. 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏

    3404: [Usaco2009 Open]Cow Digit Game又见数字游戏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 72  Solved ...