精华内容
下载资源
问答
  • Java异常分类

    万次阅读 多人点赞 2012-11-27 15:46:48
    1 基本概念 java.lang.Throwable是所有异常的根 ...一般分为Checked异常和Runtime异常,所有RuntimeException及其子类的实例被称为Runtime异常,不属于该范畴的异常则被称为CheckedException。 2.1...

    欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习

    1 基本概念

    java.lang.Throwable是所有异常的根

    java.lang.Error是错误信息

    java.lang.Exception是异常信息

     

    2 Exception

    一般分为Checked异常和Runtime异常,所有RuntimeException类及其子类的实例被称为Runtime异常,不属于该范畴的异常则被称为CheckedException。


    2.1 Checked异常

    只有java语言提供了Checked异常,Java认为Checked异常都是可以被处理的异常,所以Java程序必须显示处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误无法编译。这体现了Java的设计哲学:没有完善错误处理的代码根本没有机会被执行对Checked异常处理方法有两种

    1 当前方法知道如何处理该异常,则用try...catch块来处理该异常。
    2 当前方法不知道如何处理,则在定义该方法是声明抛出该异常。

    package cn.xy.test;
    
    import java.io.IOException;
    
    /**
     * Checked异常测试方法
     * @author 公众号「JAVA前线」
     *
     */
    public class CheckedExceptionMethods
    {
    	// 总异常类,既有checkedException又有RuntimeException,所以其中的checkedException必须处理
    	public void method1() throws Exception
    	{
    		System.out.println("我是抛出异常总类的方法");
    	}
    
    	// 捕获并处理这个异常
    	public void testMethod1_01()
    	{
    		try
    		{
    			method1();
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    
    	// 把异常传递下去
    	public void testMethod1_02() throws Exception
    	{
    		method1();
    	}
    
    	public void testMethod1_03() throws Exception
    	{
    		throw new Exception();
    	}
    
    	public void testMethod1_04()
    	{
    		try
    		{
    			throw new Exception();
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    
    	// checkedException典型代表IOException
    	public void method2() throws IOException
    	{
    		System.out.println("我是抛出IO异常的方法");
    	}
    
    	public void testMethod2_01()
    	{
    		try
    		{
    			method2();
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    
    	public void testMethod2_02() throws Exception
    	{
    		method2();
    	}
    
    }
    

    我们比较熟悉的Checked异常有

    Java.lang.ClassNotFoundException
    Java.lang.NoSuchMetodException
    java.io.IOException

     

    2.2 RuntimeException

    Runtime如除数是0和数组下标越界等,其产生频繁,处理麻烦,若显示申明或者捕获将会对程序的可读性和运行效率影响很大。所以由系统自动检测并将它们交给缺省的异常处理程序。当然如果你有处理要求也可以显示捕获它们。

    package cn.xy.test;
    
    /**
     * 运行时异常测试方法
     * @author 公众号「JAVA前线」
     *
     */
    public class RuntimeExcetionMethods
    {
    	public void method3() throws RuntimeException
    	{
    		System.out.println("我是抛出运行时异常的方法");
    	}
    
    	public void testMethod3_01()
    	{
    		method3();
    	}
    
    	public void testMethod1_02()
    	{
    		throw new RuntimeException();
    	}
    }
    

    我们比较熟悉的RumtimeException子类:

    Java.lang.ArithmeticException
    Java.lang.ArrayStoreExcetpion
    Java.lang.ClassCastException
    Java.lang.IndexOutOfBoundsException
    Java.lang.NullPointerException


    3 Error

    当程序发生不可控的错误时,通常做法是通知用户并中止程序的执行。与异常不同的是Error及其子类的对象不应被抛出。

    Error是throwable的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。

    Error由Java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等。程序对其不做处理。

    欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习

    展开全文
  • C++ 标准异常类和自定义异常类

    千次阅读 2019-05-11 14:01:37
    //标准异常类 #include<iostream> //头文件 #include<stdExcept> using namespace std; /* 标准异常类体系如下: 缩进层次表示继承关系 exception #include <exception> runtime_error #...

    show you the code

    //标准异常类
    #include<iostream>
    
    //头文件
    #include<stdExcept>
    using namespace std;
    
    /*
    标准异常类体系如下: 缩进层次表示继承关系
    
    exception #include <exception>
    	runtime_error #include <stdexcept>
    		overflow_error
    		underflow_error
    		range_error
    	logic_error #include <stdexcept>
    		invalid_argument
    		length_error
    		out_of_range
    		domain_error
    	bad_alloc <new>
    	bad_exception
    	bad_cast <typeinfo>
    	bad_typeid <typeinfo>
    它们都是类。需要引用的头文件已经标注。没有标的,那么它的头文件就是上一层的头文件。
    */
    
    //自定义异常类,继承自exception
    class myException :public exception
    {
    public:
    	myException(char* c)
    	{
    		m_p = c;
    	}
    	//what()函数返回错误信息
    	virtual char* what()
    	{
    		cout << "异常类型为 myException: "<< m_p << endl;
    		return m_p;
    	}
    private:
    	char *m_p;
    };
    
    void test_func()
    {
    	throw myException("出错啦!");
    	//throw bad_alloc();
    }
    int main()
    {
    	try
    	{
    		test_func();
    	}
    	catch (myException& e)
    	{
    		e.what();
    	}
    	catch (bad_alloc& e)
    	{
    		e.what();
    	}
    	catch (...)
    	{
    		cout << "Unknown Error" << endl;
    	}
    	system("pause");
    	return 0;
    }

     

    展开全文
  • Java 异常分类

    千次阅读 2019-06-21 15:01:05
    异常分类:Error 和 Exception Error Error 是指 java 运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该对象。如果 出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全的终止。 ...

     

     

    异常分类: Error 和 Exception

     

    Error

    Error 类是指 java 运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果

    出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全的终止。

     

    Exception(RuntimeException、CheckedException)

    Exception 又有两个分支,一个是运行时异常 RuntimeException,一个是 CheckedException。


    RuntimeException : NullPointerException 、 ClassCastException ;  一定是代码写的有问题.
    CheckedException : IOException、SQLException。 RuntimeException

     

     

    Throw 和 throws 的区别:

     

    位置不同

    throws 用在函数上,后面跟的是异常类,可以跟多个;

    而 throw 用在函数内,后面跟的 是异常对象

     

    功能不同

    throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方式;

    throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。

    也就是说 throw 语句独立存在时,下面不要定义其他语句,因为执行不到。

     

    throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常,

    执行 throw 则一定抛出了某种异常对象。

     

    两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

     

     

     

     

     

     

     

     

     

     

    展开全文
  • java自定义异常类

    万次阅读 多人点赞 2018-08-05 20:44:16
    简单介绍一下java中自定义异常类的使用 背景:这里我简单模拟登陆操作,检测到密码不正确则抛出异常 自定义异常类的使用步骤如下: 1、自定义异常类继承Exception类 /** * 自定义异常类 */ public class ...

    简单介绍一下java中自定义异常类的使用
    背景:这里我简单模拟登陆操作,检测到密码不正确则抛出异常

    自定义异常类的使用步骤如下:
    1、自定义异常类继承Exception类

    /**
     * 自定义异常类
     */
    public class MyException extends Exception {
        //异常信息
        private String message;
    
        //构造函数
        public MyException(String message){
            super(message);
            this.message = message;
        }
    
        //获取异常信息,由于构造函数调用了super(message),不用重写此方法
        //public String getMessage(){
        //    return message;
        //}
    }
    

    2、在要抛出异常的函数使用throws关键字

    /**
     * 在需要抛出异常的地方使用异常类
     */
    public class UseMyException {
        private String name;
        private String password;
    
        public UseMyException(String name,String password){
            this.name = name;
            this.password = password;
        }
    
        public void throwException(String password) throws MyException{
            if (!this.password.equals(password)){
                throw new MyException("密码不正确!");
            }
        }
    }
    

    3、测试,使用try-catch处理异常

    /**
     * 测试异常
     */
    public class TestException {
    
        @org.junit.Test
        public void test(){
            UseMyException ex = new UseMyException("admin","123");
            try{
                ex.throwException("1234");
            }catch (MyException me){
                System.out.println("MyException:"+me.getMessage());
            }
        }
    }

    自定义异常类的使用其实也比较简单,有什么问题欢迎一起讨论~

    展开全文
  • java异常分类

    千次阅读 2018-12-24 20:37:32
    稍后还可以看到,如果java中内置的异常类不能够满足需求,我们可以创建自己的异常类。下图就是一个java异常层次的一个简化示意图。  需要注意的是,所有的异常都是由Throwable继承而来,但在下-层立即分解为两个...
  • 自定义异常类

    千次阅读 2018-05-23 19:32:57
    为什么要自定义异常类?当我们在输入成绩,输入工资,取款的时候,往往都有一个范围,而这个范围不是JVM能够识别的,因此在输入的时候就容易出错,因此在这些时候JDK中的异常无法满足我们的需求,我们只能自己定义...
  • 【0】README0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常——异常分类+声明已检查异常+如何抛出异常+自定义异常类 的相关知识; 0.2)异常处理的任务: 就是将控制权从错误产生的地方转移...
  • 异常-自定义异常&异常类的抛出

    千次阅读 2019-03-11 23:30:11
    异常类的抛出自定义异常理论异常函数 :调用异常函数 自定义异常理论 例如负数角标这种异常在java中并没有定义过,这时候就要按照java异常的创建思想,面向对象,将负数角标进行自定义的描述。 这种自定义的问题描述...
  • Java异常层次与异常分类

    千次阅读 2019-02-26 17:25:32
    Java简化的异常层次结构如上,需要注意的是所有都是从Throwable继承而来,下一层则分为两个结构,Error和Exception。 Error层次描述了Java运行时系统的内部错误和资源耗尽错误,这种错误除了简单的报告给用户,...
  • 异常分类和异常处理

    千次阅读 2018-08-07 09:35:17
    异常概述 在java中程序的运行往往会因为设计或者编写过程中引起一些错误的操作,这些错误信息主要包含两种类型 错误(Error):通常是JVM内部...Error和Exception都是从Throwable继承过来 异常分类(Excepti...
  • JAVA异常分类

    千次阅读 2018-11-09 22:09:37
    1、JAVA中的异常也是对象,jdk中也提供了很多异常类 (1)包图中java.lang (2)Error错误的话,一般来讲,就不是代码可以处理的问题了 (3)RuntimeException有很多子类,中NullPointerException是空指针异常...
  • java异常分类和常见异常

    千次阅读 2017-02-20 21:51:26
    异常类分两大类型: Error类代表了编译和系统的错误,不允许捕获; Exception类代表了标准Java库方法所激发的异常。 Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两...
  • 目录一、异常类继承层次(1)Throwable类(2)Error和Exception(3)受检查异常和运行时异常 一、异常类继承层次 异常封装成为类Exception,此外,还有Throwable和Error类,异常类继承层次如图19-1所示。 (1)...
  • except 异常类a as e: # e 是一个变量,记录异常类的信息,通常是Exception 如果发生异常a,执行尝试处理异常a的操作 except 异常类b as f: # 可以定义一个或多个except 语句 如果发生异常a,...
  • 1,Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要使用人工创建并抛出。 2首先要生成异常类对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。 可以抛出的异常必须是...
  • django 异常分类

    千次阅读 2017-08-05 09:23:18
    Django异常 DJango会抛出一些它自己的异常,...Django核心异常类定义在django.core.exceptions中。 ObjectDoesNotExist _exception _ObjectDoesNotExist[source] DoesNotExist异常的基类;对ObjectDoesNot
  • java 异常分类和处理机制

    万次阅读 多人点赞 2018-06-01 15:08:26
    一、背景介绍 程序在运行过程中发生错误或异常情况是不可避免的,如果每一个运行时错误都由...Java语言定义了很多异常类,将运行错误和异常的信息和处理方法封装在了异常类中,帮助程序员检查和控制异常。即J...
  • java常用异常类

    千次阅读 2017-08-01 20:05:22
    异常类,常用异常类的含义
  • Java异常类

    千次阅读 2018-08-09 21:24:19
    异常类是个什么东西!?为什么要有异常这个东东??不够用了能不能自己造一个? 举个例子: 假设今天早晨你早早的出门,骑着单车去买新鲜的蔬菜、肉类总之就是你打算今天做一顿丰盛的午餐,你呢,要去的菜市场要过...
  • 常见的异常类有哪些?

    千次阅读 2019-06-01 00:21:06
    常见的异常类有哪些? 异常非常多,Throwable 是异常的根类。 Throwable 包含子类 错误-Error 和 异常-Exception 。 Exception 又分为 一般异常和运行时异常 RuntimeException。 运行时异常不需要代码显式捕获...
  • JAVA 自定义异常类

    千次阅读 2018-06-08 17:53:15
    自定义异常类 在编写程序时可以扩展Exception类定义自己的异常类,然后根据程序的需要来规定哪些方法产生这样的异常。个方法在声明时可使用throws关键宇声明要产生的若干个异常,并在该方法中具体给出产生异常的...
  • 一.主动引发异常 并非只有在程序运行出错时才可以引发异常,python允许在代码中使用raise或assert语句主动引发异常。 1.raise语句 ...raise 异常类实例对象 #引发异常类实例对象对应的异常 raise ...
  • java 异常类

    千次阅读 2015-04-12 10:40:03
     在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。   Java异常体系结构呈树状,其层次结构图如图 1所示:  Thorwable类所有异常和错误的超类,有两个子类Error和...
  • java中Throwable类是所有异常类的父类

    千次阅读 2019-12-03 18:16:41
    Error异常和Exception异常都继承于throwable异常类。 throwable异常类下面分为两个子类:error异常(又名系统异常),和Exception异常(编码,环境,操作异常) Error异常是系统异常(都是非检查异常),主要包括...
  • Python异常捕获及自定义异常类

    千次阅读 2019-05-14 00:00:45
    Python异常捕获及自定义异常类 一、什么是异常? 异常是一个与业务逻辑无关的BUG,一个潜在错误或者网络错误事件等,如:尚未实现的函数,缩进错误,Python语法错误等.该事件可能会在程序执行过程中发生,影响程序的...
  • sun提供了很多的异常类给我们用于描述程序中各种的不正常情况,但是sun给我们提供异常类还不足以描述我们现实生活中所有不正常情况,那么这时候我们就需要自定义异常类。1、需求: 模拟feiQ上线的时候,如果没有插上网...
  • 自定义异常类

    千次阅读 2018-02-28 11:01:51
    一、前言jdk中本身提供丰富的异常处理类(参见JDK提供的异常类),但项目中还会自定义很多异常,主要因为jdk提供的异常只正对代码本身需求做的定义,对于实际需求要根据业务来自定义异常(年龄大于200、用户不存在)...
  • JAVA中的异常处理机制及异常分类

    万次阅读 多人点赞 2017-04-01 16:18:27
    JAVA的异常处理机制:如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,791
精华内容 32,316
关键字:

异常类