十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。\x0d\x0a用try来指定一块预防所有异常的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的异常的类型。\x0d\x0athrow语句用来明确地抛出一个异常。\x0d\x0athrows用来标明一个成员函数可能抛出的各种异常。\x0d\x0a可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,异常的框架就放到堆栈上面,直到所有的try语句都完成。
创新互联建站主营太湖网站建设的网络公司,主营网站建设方案,app开发定制,太湖h5微信小程序开发搭建,太湖网站营销推广欢迎太湖等地区企业咨询
Java语言提供两种异常处理机制:捕获异常和声明抛弃异常。
1、捕获异常:
(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
(3)捕获异常是通过try-catch-finally语句实现的。语法为:
try{
...
}catch(ExceptionName1e){
...
}catch(ExceptionName2e){
...
}
...
}finally{
...
}
2、声明抛弃异常:
(1)当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。
(2)声明抛弃异常是在一个方法声明中的throws子句中指明的。如:
publicintread()throwsIOException{
...
}
其中throwsIOException就是声明抛弃异常,throws后可以跟多个异常类型。
扩展资料:
程序设计语言的异常机制:
1、多数语言的异常机制的语法是类似的:用throw或raise抛出一个异常对象(Java或C++等)或一个特殊可扩展的枚举类型的值(如Ada语言);
2、异常处理代码的作用范围用标记子句(try或begin开始的语言作用域)标示其起始,以第一个异常处理子句(catch,except,resuce等)标示其结束;可连续出现若干个异常处理子句,每个处理特定类型的异常。
3、某些语言允许else子句,用于无异常出现的情况。更多见的是finally,ensure子句,无论是否出现异常它都将执行,用于释放异常处理所需的一些资源。
(1)C++异常处理是资源获取即初始化(Resource-Acquisition-Is-Initialization)的基础。
(2)C语言一般认为是不支持异常处理的。Perl语言可选择支持结构化异常处理(structuredexceptionhandling)。
(3)Python语言对异常处理机制是非常普遍深入的,所以想写出不含try,except的程序非常困难。
参考资料来源:
百度百科-异常处理
import java.util.Scanner;
public class ExceptionDemo {
public static void main(String[] args) {
double op1,op2,r;
Scanner sc=new Scanner(System.in);
System.out.println("请输入两个double型的参数");
op1=sc.nextDouble();
op2=sc.nextDouble();
try {
r=div(op1,op2);
}
catch(MyException ex) {
System.out.println(ex.getMessage());
do {
System.out.println("除数为0,请重新输入操作数2的值!");
op2=op2=sc.nextDouble();
}while(0==op2);
}
finally {
System.out.println(""+op1+"/"+op2+"的结果是:"+(op1/op2));
}
sc.close();
}
static double div(double op1,double op2) throws MyException {
if(0==op2) {
throw new MyException("自定义异常,除数为0异常");
}
return op1/op2;
}
}
class MyException extends Exception {
MyException(String msg) {
super(msg);
}
}