java异常机制

    编写代码时,难免会出现错误。捕获错误最理想的是在编译期间,最好在试图运行程序以前。然而,并非所有错误都能在编译期间侦测到。有些问题必须在运行期间解决,让错误的缔结者通过一些手续向接收者传递一些适当的信息,使其知道该如何正确地处理遇到的问题。这时候便需要用到java的异常机制。

-------------------------------
Java异常关键字

try{}:try语句块
捕捉异常,把有可能发生异常的代码写在try语句块中,在执行过程 中,如果代码发生异常,try语句块会捕捉异常,转交给catch语句 进行处理。

catch(异常类型 对象名){}:
catch语句会根据try语句块捕捉异常的进行匹配,执行相应的
处理代码。

finally{}:
不管是否发生异常都会执行的语句块;
用来释放一些必须要释放的资源。

throw
在方法里边向外抛出异常,需要使用throws或者try{}catch进行
处理操作。
可以使用throw创建一个新异常对象。

throws
throws是将异常抛给调用的地方。

-----------------------------------------
Java中异常的分类
Throwable
Error:错误
错误一般是代码上无法进行修改的异常。

Exception :异常
运行时异常:
RuntimeException
NullPointerException
ArrayIndexOutOfBoundsException
强制异常:
IOException
ClassNotFoundException
SocketException

--------------------------------------------
如果发生异常,如何进行处理?
1.找是什么类型的异常
2.找异常发生的哪一个行代码(是我们编写的类)
3.在这行代码前加上输出测试语句,测试信息是否正确
4.找到调用方法的哪一行代码,在代码前输出测试语句

-----------------------------------------
使用示例

import java.io.IOException;

public class Demo {

private static Demo d;

private static int[] array = new int[10];

public static void main(String[] args) {

//int i = 10/0;

try {
byZero();
}catch (Exception e) {
e.printStackTrace();//打印异常的堆栈信息
}

try {
nullMethod();
} catch (Exception e) {
e.printStackTrace();
}

try {
indexMethod();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void byZero() throws Exception {
try {
int i = 10 / 0;
} catch (ArithmeticException e) {
// throw new ArithmeticException("除数为0");
throw new Exception("除数为0");
}
}

public static void nullMethod() throws Exception {
try {
d.hashCode();
} catch (NullPointerException e) {
throw new Exception("空指针异常");
}
}

public static void indexMethod() throws Exception {
try {
array[-1] = 0;
} catch (ArrayIndexOutOfBoundsException e) {
throw new Exception("数组越界");
}
}

}

你可能感兴趣的:(JAVA异常)