异常

 异常:
1.当一个程序本身抛出了异常过后,程序会从程序导致异常的地方跳出来,使用try和catch来实现,当JVM碰到这个语句块的时候,它会监听整个程序,一旦出现了任何异常情况,它会将整个程序的执行权交给catch块来执行.


2.java 里面的异常体系结构分为:
  I.Error:表示程序在运行期间出现了十分严重的问题以及不可以恢复的错误,这种情况唯一的办法是中止程序运行.
  II.Exception:指在编程过程中可能会遇到的异常的概念,也属于java里面允许出现的例外情况,而Exception本身分为以下两种:
  RuntimeException:继承于Exception类,一般称为运行时异常.这种异常在运行时抛出一般情况下不需要进行捕获操作.暗示着程序可能会出现某种错误.是在设计之初无法预知的.
  CheckedException:不存在继承 Exception类的说法,称为可检测异常或者捕获异常.是必须被处理的.


3.在catch中说明异常:
  catch(Exception ex)
  {
     ex.printStackTrace();//将此throwable及其追踪输出至标准错误流.
     ex.toString();//返回此throwable的简短描述.
     ex.getMessage();//返回此 throwable的详细消息字符串.
   }

 

4.特殊异常类AssertionError
  抛出该异常指示某个断言失败.

   public class AssertionErrorTester
{
    public static void main(String args[])

    {

        try
        {

            assert args.length < 0:"Args Length Error!";

        }

        catch(AssertionError e)

        {

            String message = e.getMessage();

            System.out.println("Error Source:" + message);

        }

    }
}

 

 

5.异常的基本语法:
 1)try,catch,finally关键字:
  public class ExceptionTester
  {
      public static void main(String[] args)
      {
 //这一块被成为异常的正常执行块,也就是如果没有异常抛出的话,try块会一直这样正常执行到最后
 try
 {
      //判断输入参数的长度
      if(args.length==0)
       {
  System.out.println("Args length is zore");
        }
  else
  {
       String inputString=args[0];
       int inputNumber=Integer.parseInteger(inputString);
       System.out.println("Input number is:"+inputNumber);
  }
 }
 //这是一块异常处理块,一旦当try代码块抛出了异常的时候,直接从try 块中断,直接进行catch代码块的执行
        catch(Exception ex)
 {
      ex.printStackTrace();
 }
 //这一块是异常处理块,一旦当try代码块里面抛出了异常的时候,直接从try块中断,直接进行catch代码块的执行

        catch(Exception ex)

        {

            ex.printStackTrace();

        }

        //finally代码块,不论try中是否抛出异常,也不论catch里面是否真正能够捕捉到异常,finally里面的代码都会执行(有例外)

        finally

        {

            System.out.println("Testing finishing...");

        }

    }
}

在异常处理里面,catch语句块可以有多个,分别处理不同的异常.
一般情况异常类型的顺序是:从特殊到一般,然后是从子类到父类.
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值