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

  • 相关阅读:
    [破解]java打包Exe工具
    weblogic:local class incompatible: stream classdesc serialVersionUID
    funny alphabet
    Apache Thrift
    nginx 学习笔记(9) 配置HTTPS服务器--转载
    nginx学习笔记(8)虚拟主机名---转载
    nginx学习笔记(7)Nginx如何处理一个请求---转载
    nginx 学习笔记(6) nginx配置文件中的度量单位
    nginx 学习笔记(5) nginx调试日志
    nginx 学习笔记(4) Connection处理方法
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4838684.html
Copyright © 2011-2022 走看看