1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java 异常处理 try catch finally throws throw 的使用和解读(一)

Java 异常处理 try catch finally throws throw 的使用和解读(一)

时间:2021-09-14 00:59:19

相关推荐

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; // 合法

}

(4): try 后面包含多个catch的时候,JVM会一次和各个catch代码块声明的异常类型匹配

如果异常对象为某个异常类型或者其子类实例就执行这个catch代码块,不再执行其他的。

例:

try

{

code;//假设可能抛出FileNotFoundException

}

catch (SQLException)

{

System.out.println("SQLException");

}

catch (IOException)

{

System.out.println("IOException");

}

catch (Exception)

{

System.out.println("Exception");

}

发生异常控制台会输出 “Exception”;

(5)throw 语句后面不允许紧跟其他语句,因为这些语句永远不会被执行

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。