zoukankan      html  css  js  c++  java
  • 在java中的Try Catch块-------------异常处理(2)

    1. Try块是什么?

    Try块是一块可能产生异常的代码块,一个Try块可能跟着Catch块或者Finally块,或者两者。

    Try块的语义:

    try{
       //statements that may cause an exception
    }

    2. Catch块是什么?

    一个Catch块关联一个Try块,如果在Try块中有一个特定类型的异常发生,则响应的Catch块会执行,例如,

    如果在Try块中arithmmetic exception发生,那么对应arithmmetic exception的Catch块会发生。

    Catch块的语义:

    try
    {
         //statements that may cause an exception
    }
    catch (exception(type) e(object))‏
    {
         //error handling code
    }

    3. Try-Catch块的执行流程

    如果在try块中的异常发生,则执行的控制将会被传到Catch块中,异常被相应的Catch块所捕获,一个

    Try块可以有多个Catch块,但是每一个Catch块仅仅能定义一种异常类,

    当Try块中的所有代码执行完之后,在Finally块中的代码将会执行。包含一个Finally块并不是强制的,

    但是如果你有Finally块,它将会运行,不管有没有异常剖出或者处理。

    一个Try-Catch的例子:

    class Example1 {
       public static void main(String args[]) {
         int num1, num2;
         try { 
            // Try block to handle code that may cause exception
            num1 = 0;
            num2 = 62 / num1;
            System.out.println("Try block message");
         } catch (ArithmeticException e) { 
                // This block is to catch divide-by-zero error
                System.out.println("Error: Don't divide a number by zero");
           }
         System.out.println("I'm out of try-catch block in Java.");
       }
    }

    输出:

    Error: Don't divide a number by zero
    I'm out of try-catch block in Java.

    4. 在java中的多个代码块

    一个Try块可以有多个Catch块

    一个捕获Exception类的Catch块可以捕获其他的异常

    catch(Exception e){
      //This catch block catches all the exceptions
    }

    如果有多个Catch块存在,则上面提到的Catch应该放到最后。

    如果Try块没有抛出异常,则Catch块将被忽略,程序将会继续。

    如果Try块抛出异常,则相应的Catch块将会处理它。

    在Catch块中的代码将会执行,然后程序继续执行。

    class Example2{
       public static void main(String args[]){
         try{
             int a[]=new int[7];
             a[4]=30/0;
             System.out.println("First print statement in try block");
         }
         catch(ArithmeticException e){
            System.out.println("Warning: ArithmeticException");
         }
         catch(ArrayIndexOutOfBoundsException e){
            System.out.println("Warning: ArrayIndexOutOfBoundsException");
         }
         catch(Exception e){
            System.out.println("Warning: Some Other exception");
         }
       System.out.println("Out of try-catch block...");
      }
    }
    输出:
    Warning: ArithmeticException
    Out of try-catch block...


  • 相关阅读:
    solr学习四(关于性能的杂知识)
    solr学习三(测试类,含普通与ExtractingRequestHandler测试)
    solr学习二(ExtractingRequestHandler)
    solr学习一(一大堆的学习资料)
    ElasticSearch 5.0 简介
    solrcloud配置中文分词器ik
    SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作
    Solr6.2.0 + zookeeper 集群配置
    03: MySQL基本操作
    02: MySQL的安装与基本配置
  • 原文地址:https://www.cnblogs.com/yandufeng/p/5009569.html
Copyright © 2011-2022 走看看