---------- android培训、java培训、期待与您交流! ----------
异常处理是java的一种重要的错误处理机制。Java程序在运行中,通常可能遇到两种错误:异世致命错误,程序不能简单地恢复执行:另一种是非致命错误,通常称为异常,程序可以通过异常处理来修正程序,并使其可以继续执行。
Java所有包中都声明了异常类和错误。Exception类是所有异常类的父类;Error类是所有错误类的父类。着两个类 同时又是Throwable的子类。每个类都包含了该运行错误的信息和处理错误的方法等内容。
在java中,可以通过try…..catch…..finally语句来捕获和处理异常,也可以在程序中生成自己的异常对象。通过throw语句人为抛出异常。此外如果一个方法生成一个异常,当爱方法并不能确定如何处理此类异常,可以使用throws语句来声明将异常抛出给调用该方法的方法。
对于程序中可能出现一些系统识别不了的运行错误,用户可以通过创建自己的异常和异常类来解决,自定义异常类的父类一般是Exception类和Exception类的子类。
示例一 :
package com.itheima;
public class ExceptionDemo {
public static void main(String[] args) {
Test test = new Test();
//通过try....catch.....finally处理异常
try {
int a = test.div(7, 0);
System.out.println(a);
} catch (Exception e) {
System.out.println("除零啦");
} finally {
System.out.println("over");
}
}
}
class Test {
int div(int x, int y)
{
return x / y;
}
}
示例二:
package com.itheima;
public class ExceptionDemo {
public static void main(String[] args) throws Exception//异常抛给虚拟机默认处理
{
Test test = new Test();
int a = test.div(7, 0);
System.out.println(a);
System.out.println("除零啦");
System.out.println("over");
}
}
class Test {
int div(int x, int y) throws Exception//通过throws声明该功能可能出现问题
{
return x / y;
}
}
示例三:自定义异常
package com.itheima;
public class ExceptionDemo {
public static void main(String[] args) {
Test test = new Test();
int a;
try {
a = test.div(7, -2);
System.out.println(a);
} catch (fushuException e) {
System.out.println("除数出现负数");
} finally {
System.out.println("over");
}
}
}
/*
* 自定义异常
*/
class fushuException extends Exception {
}
class Test {
int div(int x, int y) throws fushuException{
if (y < 0) {
throw new fushuException();
/**
* throws和throw的区别: throws使用在函数上,后面跟异常类,可以多个,用逗号隔开。
* throw使用在函数内,后面跟的是异常对象。
*/
}
return x / y;
}
}