android exception异常代码,【Android开发】Java 异常 Exception

前言: Java 中 Exception 继承自Throwable。在程序的编译、运行过程中,JVM检测、捕获这些异常,保证程序运行的健壮性。

Exception 分类

Exception 总共有两大类:

Unchecked Exception(Runtime Exception)

Checked Exception(非Runtime Exception)

提醒:所有的RuntimeException都是Unchecked Exception,其余的全是CheckedException.

区别:Unchecked 与Checked 区别在于,对于CheckedException,我们必须对其检查处理,也就是必须添加try…catch…捕获异常、或者throw 抛出异常。而对于UncheckedException,可以选择处理,也可以不处理。推荐不处理这些异常。

常见异常.png

异常处理

try 块:用于捕获异常。其后可接零个或多个catch块,若没有catch块,则必须跟一个finally块。

catch 块:用于处理try捕获到的异常。

finally 块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。其实 finally 语句块是在 try 或者 catch 中的 return 语句之前执行的。更加一般的说法是,finally 语句块应该是在控制转移语句之前执行,控制转移语句除了 return 外,还有 break 和 continue。

在以下特殊情况下,finally块不会被执行:

1)在finally语句块中 发生了异常。

2)try或者catch中System.exit(0)退出程序。

3)程序所在的线程死亡。

4)计算机断电、失火、或遭遇病毒攻击

异常处理.png

代码示例:

//该代码直接借用的@Dandan Meng 的,他写的很棒,我就没有再去创建

public class ExceptionTest

{

public static void main(String[] args)

{

int c = 0;

try

{

int a = 3;

int b = 0;

// 这块代码出现了异常 ,除数不能为0

c = a / b;

// 那么异常之后的代码都不会被执行

System.out.println("Hello World");

}

catch (ArithmeticException e)

{

e.printStackTrace();

}

finally

{

//不管有没有发生异常,finally语句块都会被执行

System.out.println("Welcome");

}

System.out.println(c);

// 当b为0时,有异常,输出为c的初始值0

}

}

小结

你可能感兴趣的:(android,exception异常代码)