1. try-catch语句
在Java中,异常通过try-catch语句捕获。其一般语法形式为
try {// 可能会发生异常的程序代码
} catch (Type1 id1){
// 捕获并处置try抛出的异常类型Type1
}
catch (Type2 id2){
//捕获并处置try抛出的异常类型Type2
}
关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域。Java方法在运行过程中出现异常,则创建异常对象。将异常抛出监控区域之 外,由Java运行时系统试图寻找匹配的catch子句以捕获异常。若有匹配的catch子句,则运行其异常处理代码,try-catch语句结束。
匹配的原则是:如果抛出的异常对象属于catch子句的异常类,或者属于该异常类的子类,则认为生成的异常对象与catch块捕获的异常类型相匹配。
例1 捕捉throw语句抛出的“除数为0”异常。
public class TestException {public static void main(String[] args) {
int a = 6
int b = 0
try { // try监控区域
if (b == 0) throw new ArithmeticException() // 通过throw语句抛出异常
System.out.println("a/b的值是:" + a / b)
}
catch (ArithmeticException e) { // catch捕捉异常
System.out.println("程序出现异常,变量b不能为0。")
}
System.out.println("程序正常结束。")
}
}
运行结果:
程序出现异常,变量b不能为0。
程序正常结束。
例1 在try监控区域通过if语句进行判断,当“除数为0”的错误条件成立时引发ArithmeticException异常,创建 ArithmeticException异常对象,并由throw语句将异常抛给Java运行时系统,由系统寻找匹配的异常处理器catch并运行相应异 常处理代码,打印输出“程序出现异常,变量b不能为0。”try-catch语句结束,继续程序流程。
事实上,“除数为0”等ArithmeticException,是RuntimException的子类。而运行时异常将由运行时系统自动抛出,不需要使用throw语句。
例2 捕捉运行时系统自动抛出“除数为0”引发的ArithmeticException异常。
public static void main(String[] args) {int a = 6
int b = 0
try {
System.out.println("a/b的值是:" + a / b)
} catch (ArithmeticException e) {
System.out.println("程序出现异常,变量b不能为0。")
}
System.out.println("程序正常结束。")
}
}
2. try-catch-finally语句
try-catch语句还可以包括第三部分,就是finally子句。它表示无论是否出现异常,都应当执行的内容。try-catch-finally语句的一般语法形式为:
try {// 可能会发生异常的程序代码
} catch (Type1 id1) {
// 捕获并处理try抛出的异常类型Type1
} catch (Type2 id2) {
// 捕获并处理try抛出的异常类型Type2
} finally {
// 无论是否发生异常,都将执行的语句块
}
1、核对是否在个别软件使用中才出现,如是应为软件异常或兼容性导致,需到系统设置的应用程序中找到并选择该程序进行清除数据,或卸载重装同类型软件;
2、核对是否后台程序过多,因运行资源不足导致程序意外中止,可定时关闭系统后台程序,或使用乐安全中的“手机加速”功能实现;
3、如果程序安装于外置存储卡,可能是外置存储卡问题导致,查看安装于内置存储中的应用是否存在此情况,也可以更换外置存储卡进行尝试;
4、如之前可以正常使用,可备份数据进行恢复出厂设置 *** 作。
网络的问题。程序出现异常,请重新登录多数是网络连接异常导致。1、首先打开手机检查网络。
2、其次打开浏览器进行测试网络连接是否异常。
3、最后等待网络连接正常后,重新登陆该程序即可解决,程序异常请重新登录的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)