zoukankan      html  css  js  c++  java
  • [Java] java中的异常处理

    Java中的异常类都继承自Throwable类。一个Throwable类的对象都可以抛出(throw)。

    Throwable对象可以分为两组。一组是unchecked异常,异常处理机制往往不用于这组异常,包括:

    • Error类通常是指Java的内部错误以及如资源耗尽的错误。当Error(及其衍生类)发生时,我们不能在编程层面上解决Error,所以应该直接退出程序。
    • Exception类有特殊的一个衍生类RuntimeException。RuntimeException(及其衍生类)是Java程序自身造成的,也就是说,由于程序员在编程时犯错。RuntimeException完全可以通过修正Java程序避免。比如将一个类型的对象转换成没有继承关系的另一个类型,即ClassCastException。这类异常应该并且可以避免。

    剩下的是checked异常。这些类是由编程与环境互动造成程序在运行时出错。比如读取文件时,由于文件本身有错误,发生IOException。再比如网络服务器临时更改URL指向,造成MalformedURLException。文件系统和网络服务器是在Java环境之外的,并不是程序员所能控制的。如果程序员可以预期异常,可以利用异常处理机制来制定应对预案。比如文件出问题时,提醒系统管理员。再比如在网络服务器出现问题时,提醒用户,并等待网络服务器恢复。异常处理机制主要是用于处理这样的异常。

    public class TestException
    {
        public static void main(String[] args)
        {
            LearnCourse learnCourse = new LearnCourse();
            learnCourse.learnEnglish(-1);
        }
    }
    class LearnCourse
    {
        public void learnEnglish (int t)
        {
            try{
                mark(t);
            }catch(Exception e){
                System.out.println("catch Exception");
                System.out.println(e.getMessage());
                t = 0;
            }
        }
        private void mark(int t) throws Exception
        {
            if(t<0){
                Exception e = new Exception("t is "+t+", t must be positive");
                throw e;
            }else{
                System.out.println("The time for learning English is "+t+" hours");
            }
        }
            
    }

    在catch中,我们使用getMessage()方法提取其异常中包含的信息。上述程序的运行结果如下:

    catch Exception
    t is -1, t must be positive

  • 相关阅读:
    CQUOJ 10819 MUH and House of Cards
    CQUOJ 9920 Ladder
    CQUOJ 9906 Little Girl and Maximum XOR
    CQUOJ 10672 Kolya and Tandem Repeat
    CQUOJ 9711 Primes on Interval
    指针试水
    Another test
    Test
    二分图匹配的重要概念以及匈牙利算法
    二分图最大匹配
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4838684.html
Copyright © 2011-2022 走看看