Java中的异常(2)
来源:互联网 发布:知乎注册名字 编辑:程序博客网 时间:2024/06/11 07:08
1. throws和throw关键字
(1).throws关键字:在定义一个方法的时候可以使用throws关键字声明,使用 throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。
使用格式:
public 返回值类型 方法名称(参数列表。。。。)throws异常类{}
举例:
class Math{
public int div(int i,int j)throws Exception{//定义除法操作,如果有异常,交给调用处处理
int t = i/j;
return t;
}
}
以上程序报错,因为div方法使用了throws关键字声明,所以在调用此方法的时候,方法必须进行异常处理。
举例:
public class Exception3 {
public static void main(String[] args) {
Math m = new Math();
try{
System.out.println("除法操作:" + m.div(10, 2));
}catch (Exception e) {
e.printStackTrace();//打印异常
}
}
}
class Math{
public int div(int i,int j)throws Exception{//定义除法操作,如果有异常,交给调用处处理
int t = i/j;
return t;
}
}
运行结果:除法操作:5
如果现在在主方法的声明上也使用了throws关键字,可不可以呢?答案是可以。在主方法中的所有异常都可以不使用try...catch进行处理
举例:
public class Exception3 {
//在主方法中的所有异常都可以不使用try...catch进行处理
public static void main(String[] args)throws Exception {
Math m = new Math();
System.out.println( "除法操作:" + m.div(10, 2));
}
}
class Math{
public int div(int i,int j){
int t = i/j;
return t;
}
}
运行结果:除法操作:5
把以上主方法中输出改为System.out.println( "除法操作:" + m.div(10,0));
则抛出异常,在本程序中主方法不处理任何异常了,而是交给最大的头,java中最大的头是JVM,所以如果在主方法中使用throws关键字,则表示一切的异常交给了JVM进行处理,默认的处理方法也是使用JVM完成的。
(2) throw关键字
throws关键字的作用与throws关键字不同的是在程序中,可以直接使用throw抛出一个异常。抛出的时候直接抛出异常类的实例化对象即可。
举例:
public class Exception4 {
public static void main(String[] args) {
try{
throw new Exception("自己抛着玩");//抛出异常的实例化对象
}catch (Exception e) {
System.out.println(e);
}
}
}
运行结果:java.lang.Exception: 自己抛着玩
2.throw和throws,结合try..catch..finally应用
举例“:
public class Exception3 {
//在主方法中的所有异常都可以不使用try...catch进行处理
public static void main(String[] args) {
Math m = new Math();
try {
System.out.println( "除法操作:" + m.div(10, 0));
} catch (Exception e) {
System.out.println( "异常产生:" + e);
}
}
}
class Math{
public int div(int i,int j)throws Exception{
System.out.println("======计算开始======");
int temp = 0;
try {
temp = i/j;
} catch (Exception e) {
throw e;
}finally{
System.out.println("======计算结束======");
}
return temp;
}
}
运行结果:
======计算开始======
======计算结束======
异常产生:java.lang.ArithmeticException: / by zero
- Java中的异常(2)
- 【java】java中的异常
- java中的异常处理机制(2)
- Java中的异常处理
- java中的的异常
- java中的异常
- JAVA中的异常处理
- Java中的异常处理
- Java中的异常分类
- JAVA中的异常处理
- Java中的自定义异常
- Java中的异常
- java中的异常处理
- Java中的所有异常
- java中的异常
- JAVA程序中的异常
- java中的常见异常
- java 中的异常解析
- 编写一个方法,确定某字符串的所有排列组合
- 二进制安全
- android获取存储空间
- android:如何从照片中获取拍摄地址信息
- Objective-C 【内存管理&手动内存管理 综述】
- Java中的异常(2)
- 如何给10^7个数据量的磁盘文件排序
- JAVA程序员面试题
- python __base__等内置方法
- Servlet3.0注解配置Servlet和Filter
- UCOS II移植内容
- 有向图深度优先与广度优先算法的C++实现
- Jenkins设置Window编译环境从节点
- 知识小罗列