• [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

  • 相关阅读:
    OC字符串处理
    用 map 表达互斥逻辑
    iOS之LLDB调试器
    iOS 线程安全 锁
    OC实现 单向链表
    iOS读取info.plist中的值
    SQLite 如何取出特定部分数据
    UIView常用的一些方法setNeedsDisplay和setNeedsLayout
    xCode常用快捷键
    oppo7.0系统手机(亲测有效)激活Xposed框架的流程
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4838684.html
Copyright © 2020-2023  润新知