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

  • 相关阅读:
    vector族函数
    (2)apply函数及其源码
    Eclipse如何修改默认工作空间路径
    怎么将码云的项目导入到eclipse
    在cmd中使用vim编译器
    win8中让cmd.exe始终以管理员身份运行
    cmd命令配置MySQL
    conda的一些指令
    今天遇到的“OS ERROR, permission denied” 如何解决的
    linux的环境变量
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4838684.html
Copyright © 2020-2023  润新知