异常处理(Exception)

来源:互联网 发布:网络工程学院 编辑:程序博客网 时间:2024/05/21 16:57

什么叫异常(Exception):在程序运行过程中出现的错误
再看一张图
这里写图片描述
异常的分类
异常主要分为:错误、一般性异常(受控异常)、运行期异常(非受控异常)
1)错误:如果应用程序出现了Error,那么将无法恢复,只能重新启动应用程序,最典型的Error的异常是:OutOfMemoryError(内存溢出)
2)受控异常:出现了这种异常必须显示的处理,不显示处理java程序将无法编译通过
3)非受控异常:此种异常可以不用显示的处理,例如被0除异常,java没有要求我们一定要处理
.如何处理异常?

第一种处理方式异常的捕获和处理需要采用trycatch来处理,具体格式如下:try { //包含了可能产生异常的代码}catch(OneException e) {  //处理的方式1}catch(TwoException e) {//处理的方式2}finally {//finally可要可不要//一定要执行的代码 }第二种处理方式  public void haha()  throws Exception1 e1,Exception2 e2{        //可能出现异常(尤其是编译时异常,一定要处理)        //这里的意思是指将可能出现的异常交给上层去处理,不用自己处理     }第三种处理方式(自己手动抛出异常+自己定义一个异常)/**定义一个自定义异常类继承Exception * 并写一个构造函数 */public class TestException  extends Exception{public TestException(String string) {    System.out.println(string);;}}import java.util.Scanner;/** *定义一个简单的测试类,如果输入的除数为0就抛出你“除数不能为0!” 其实系统会自己检查抛出异常的,我们这里仅仅为了举例说明如何自定义异常及抛出来 */public class Test {    public static void main(String[] args) throws Exception {        int i = 0;        int x = 0;        Scanner input = new Scanner(System.in);        i=input.nextInt();        x=input.nextInt();        double  y;        if (i==0) {             throw  new TestException("除数不能为0!!");//抛出自己定义的异常        }        y=x/i;        System.out.println(y);    }}显示结果05除数不能为0!!Exception in thread "main" TestException    at Test.main(Test.java:12)

注释::如果我们是用eclipse作为我们IDE的话 ,系统会自己检查异常的我们会只需要按照系统的提示,抛出相应的异常就行了,但我们要明白异常的体系结构和为什么会抛出异常。。。。。。

0 0
原创粉丝点击