异常的知识点总结

来源:互联网 发布:盟军敢死队2 mac版 编辑:程序博客网 时间:2024/06/08 07:12
 在java中异常是程序设计的一个重要的一个重点,在java中,所有的异常都可以
   用一个类来表示。不同类型的异常对应不同的子类异常。
   异常主要有两个来源,一个是java运行时的环境自动抛出系统生成的异常,
   而不管程序员是否愿意捕获和处理。
   还有一种是程序员自己定义的,也可以是java语音自己定义的异常,用throw
   关键字来抛出,这种异常主要是来向调用者报告某些异常的信息。
   java语言中不同的异常有不同的分类,每个异常都对应一个异常对象,
   任何异常对象都是java.lang.Throwable类或者子类的对象,即所有异常类型都是
   内置类Throwable类的子类。
   在Throwable类中,通常把异常分为两个不同的分类,Exception和 Error
   Throwable是所有异常和错误的超类,分别有一个错误Error和一个异常Exception子类
   而其中的异常子类有分为运行时异常RuntimeException和非运行时异常,Exception是
   所有异常的父类,定义了各种各样的可能出现异常的异常事件,一般要用户显示的声明和捕获
   一;运行时异常
       运行时异常是Runtime类以及其子类的异常,这些异常是不检查异常,在程序中可以选择捕获和处理
       也可以不捕获和处理,显示的声明和捕获会对程序的可读性和运行效率影响很大,因此这些异常由系统
  自动检测并交给默认的异常进行处理,这些异常一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免这些异常的发生
  二:非运行时异常
      它是RuntimeException意外的异常,从类型上将属于Exception类及其子类,从程序语法上将必须是进行处理的异常,如果不处理
      程序就不会编译通过。、
      
      
      代码如下
  class Demo{
    public static void main(String[] args) {
        try
        {
            FeiQ.feiq("192.168.10.122");
            FeiQ.feiq(null);

        }
        catch (NoNetworkException noNet)
        {
            System.out.println(noNet.toString());
            System.out.println(noNet.extraMessage);
            System.out.println("SB, 请把网线插上!");

        }
        

        System.out.println("Hello World!");
    }
}

class NoNetworkException extends Exception
{
    //提供这个异常的一些额外的信息
    String extraMessage;

    //提供对应的构造方法
    public NoNetworkException(String message, String extra){

        super(message);

        extraMessage = extra;
    }

    public NoNetworkException(){
    }
}

class FeiQ
{
    public static void feiq(String ip) throws NoNetworkException{
        if (ip == null)
        {
            //抛出 网络问题的异常
            throw new NoNetworkException("没有网络", "额外信息:没插网线!");
        }

        System.out.println("恭喜登录成功!");
        
    }

}
0 0