zoukankan      html  css  js  c++  java
  • java基础之自定义异常类及throw和throws的区别

    一、异常的架构:

    Throwable类:所以异常类都是Throwable的子类,它派生两个子类 Error和Exception。

    Error类:表示仅靠程序本身无法恢复的的严重错误,比如内存溢出,虚拟机错误等,这些异常除了尽力使程序安全退出外,我们并没有办法去解决,所以开发的时候我们更应该关注的是Exception

    Exception类:由java应用程序抛出和处理的非严重错误,如文件找不到,网络连接中断,数组下标越界等,它的不同的子类分别对应不同类型的异常

    运行时异常:包括RuntimeException类及其子类,不要求程序员必须对它们做出处理,如果程序发生运行时异常,而我们并没有处理,会输出异常的堆栈信息,并终止程序运行

    Checked异常(非运行时异常):除了运行时异常外的其他由Exception继承来的异常类,程序必须捕获或者声明抛出这种异常。否则程序无法编译通过,如如IOException、SQLException等异常

    二、自定义异常的步骤:

    当JDK提供的异常类型不能满足程序的需求时,我们可以自定义异常

    1.定义一个普通类,并继承exception或RuntimeExceprion,继承Exceprtion的自定义异常为Checked异常(必须抛出或者try cacth),继承自RuntimeExceprion的自定义异常类为运行时异常

    2.编写异常类的构造方法,并继承父类实现,常见的如下:

    /**
     * 自定义异常类
     */
    public class MyException extends Exception {
        public MyException() {
        }
    
        public MyException(String message) {
            super(message);
        }
    
        /**
         * 
         * @param message 需要显示的异常信息
         * @param cause 为Throwable或其子类的实例
         */
        public MyException(String message, Throwable cause) {
            super(message, cause);
        }
    
        public MyException(Throwable cause) {
            super(cause);
        }
    }
    继承自Exception的自定义异常类
        @Test
        public void getMessage() throws Exception {
            try {
                int a=  10/0;
            } catch (Exception e) {
                throw  new MyException("10不能除以0");
            }
        }
    继承自Exception的异常类的测试

    除了继承自Exception还可以继承RuntimeException,具体例子就不往下写了

     三、throw和throws的区别

    主要区别有以下三点:

    1、作用不同:throw用于在程序中抛出异常;throws用于在该方法内抛出了异常;

    2、使用的位置不同:throw位于方法体内,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用;

    3、内容不容:throw抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以跟多个异常类

  • 相关阅读:
    (转)Javascript如何正确使用getElementById,getElementsByName() and getElementsByTagName()
    把一个json字符串转换成对应的c#类型
    (转)C#数字转固定长度的字符串
    WDBuyNET.DMSFrame.DMSLinq内部方法
    (Transfered)DOM最常用的方法和属性(Javascript DOM编程艺术,DOM Scripting)
    三星颁布发表供应多款Android手机全新晋级
    APNIC执委赵巍:IPv4向IPv6过渡再无退路
    谷歌Android操纵市廛下架染辣手机软件
    盗窟手机小我私人撤军华强北:市场一年不如一年
    华为“黑室”命系商务部防线
  • 原文地址:https://www.cnblogs.com/zqr99/p/8099298.html
Copyright © 2011-2022 走看看