这篇文章主要介绍了java如何处理异常,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1.当java程序运行时出现问题的时候,系统会自动检测到该错误,并立即生成一个与该错误对应的异常对象。
2.然后吧该异常对象交给java虚拟机
3.虚拟机会自动寻找对应的代码处理该异常,如果没有,虚拟机做一些简单处理后,就会强制终止程序
4.键盘输入的异常程序
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
try {
int i=sc.nextInt();
System.out.println("i="+i);
}
catch (Exception e)
{
System.out.println("输入不正确");
}
}
}
5.常见异常
(1)空指针异常 B b=null;
(2)数组越界异常
(3)算术异常
6.流程
try{
语句1;
语句2;
}
catch(){//语句一的处理
}
catch(){//语句2的处理
}
...
finally{
}//必须执行的代码
若语句1出错,则直接catch2,语句2不会执行
7.throw
throw用来抛出异常
throw new 异常名(参数)
假设f方法抛出了异常A,两种方法来处理异常
(1)void f() throws A
谁调用f方法,谁处理异常A,f方法本身不处理异常
注:throws A表示调用f方法时可能会抛出A类异常,也可能不会,对抛出的异常可以处理也可以不处理
(2)try catch
f方法本身处理A异常
8.普通类不能抛出。继承了Throwable类就可以
9.自己定义异常抛出
class DivisorisZeroException extends Exception {
public DivisorisZeroException(String name) { super(name);//可以输出除数不能为0 调用了 Exception这个父类的一种构造方法 }
}
public class B {
public int divide(int a,int b) throws DivisorisZeroException
{
int m;
if(b==0)
{
throw new DivisorisZeroException("除数不能为0");
}
else
{
m=a/b;
}
return m;
}
}
public class Test
{
public static void main(String[] args)
{
B bb=new B();
try {
bb .divide(6,0);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
10.catch
所有的catch只有一个被执行。可能所有的都不被执行
先catch子类异常再catch父类异常(按顺序写 不然父类吧子类的异常全都捕获到了 子类异常永远都不会执行)
重写方法抛出的异常范围不能大于被重写方法
感谢你能够认真阅读完这篇文章,希望小编分享的“java如何处理异常”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。