`
哈达f
  • 浏览: 120346 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

异常Exception

    博客分类:
  • j2se
 
阅读更多

异常:
	其实就是对不正常情况的描述。
	在描述过程分成两个部分。一部分可以处理,一部分一般情况其不用处理。
	通过向上抽取,形成异常体系。
	Throwable
		|--Error:不需要编写处理代码。需要对程序进行修改。
		|--Exception:可以编写特定的处理代码。
			|--RuntimeException
	
	
	异常在运行时发生,通过特定方式处理:
	try {需要被检测的代码;}catch(异常类 变量){异常处理代码;}finally{一定会被执行的代码;}

	catch的运行:当try中检测到了异常,就会把它丢给catch的引用。
	finally的运行:除了遇到System.exit(0)以外,finally都会被执行。
			通常finally中书写都是关闭资源代码(调用了系统底层资源,关闭数据库资源。)


	在定义功能时,功能因为参数的不同,会引发一些问题,那么需要将这些问题暴露出来,让调用者进行处理,
	因为实际参数是由调用者传入的。
	通过throws关键字将问题声明在函数上。


	如果调用到声明了异常的函数,需要对异常进行处理,两种处理方式:
	1,通过try。
	2,将异常继续向上抛出。如果是主函数在往外抛,
		这时jvm就会用默认的异常处理机制对其进行处理,但在这样会导致程序停止。

	自定义异常:
		在自定义的项目中,会出现项目针对性的问题,那么按照面向对象的思想,
		一样需要对该问题的进行描述。并封装成对象。

		其实和定义其他类一样,都是在描述事物,该描述的类具备可抛性而已。
		

		书写:
			定义一个类,需要继承Exception,目的是让自定的类具备可抛性。
	
	class NoException extends Exception
	{

		NoException()
		{
			super();
		}
		NoException(String message)
		{
			super(message);
		}
	}
	该对象出现的,需要通过throw 关键字手动抛出。
	为了丰富自定义异常的内容比如异常信息。可以在该类中定义一个构造函数接收字符串异常信息。并通过super将该信息向上传递这样就可以通过Throwable的getMessage()方法获取该自定义信息。
	原理参考Day8\MyThrowable.java文件。
	

	throws与throw
	区别:throws用在函数上。后面跟的是异常类名,可以跟多个,通过逗号隔开。
		throw用在函数内,后面跟的异常对象。
	
	通常,函数内出现throw,函数上都需要进行throws的声明否则,编译失败。
	特殊情况,如果函数出现的throw了RuntimeException或者其子类,那么函数上可以不用声明。
	为什么呢?
		在编译时期,RuntimeException不会被检测的。在运行发生,通常又默认的异常处理机制进行处理,让程序停掉,需要调用者对代码进行修正。
			而其他异常,是在编译时期会被检测的。

	技巧:
	如果编译时出现了,某某异常,必须被捕获或者声明以便抛出的提示,
	说明编译错误已经解决到最后了,把该异常问题解决编译搞定。

	原则:
		被调用的功能上声明几个异常,在进行try的时候就书写几个catch要对应。
		如果出现父类catch,一定要往下放。
	
	异常使用注意事项:
		在进行子父类的覆盖时,子类覆盖父类只能抛出父类异常或者异常的子类或者子集。

		如果父类被覆盖功能没有异常抛出,子类也不可以抛。子类中真的出现了问题,必须用try进行处理。

	异常的好处:
		1,对问题进行封装。可以指挥问题做事情。
		2,引起程序的跳转,当出现的问题已经无法进行下面的运算就需通过异常来导致程序的跳转。
		3,将程序正常执行代码与错误处理代码相分离。


	Throwable:
		String getMessage():获取异常信息。
		String toString():获取异常类名以及异常信息。
		void printStackTrace():直接打印异常类名,异常信息以及异常出现的位置。

	特别注意:
	try catch finally
	是三个封闭的代码块 ,也就是说在try中定义的变量,在其他代码块中是无法访问的。

	数据库连接 conn  = null;
	try
	{
		conn  = new 数据库连接();

		code...;		
	}
	catch ()
	{
	}
	finllay
	{
		conn.close();
	}

 
分享到:
评论

相关推荐

    JAVA 自定义异常 Exception

    这就是“JAVA 自定义异常 Exception”所涉及的内容。 自定义异常是在Java中通过继承`java.lang.Throwable`或其子类(如`Exception`或`Error`)来实现的。通常,我们选择继承`Exception`类,因为它用于表示程序可以...

    c# 自定义异常 Exception

    `Exception`类是所有系统异常的基类,包含了描述错误的基本属性,如`Message`(错误消息)和`InnerException`(内部异常)。以下是一个简单的自定义异常类的示例: ```csharp public class CustomException : ...

    Java异常 Exception类及其子类(实例讲解)

    Java异常Exception类及其子类是Java语言中异常处理的核心部分。异常是指程序在执行过程中出现的非正常情况,例如除数为零、数组索引越界、类型转换错误等。Java语言所有的异常都可以用一个类来表示,不同类型的异常...

    java异常exception

    `ArithmeticException`是在执行某些算术运算时发生的异常,如除以零或整数溢出等。这类异常通常出现在程序逻辑中对数值操作不当的情况,比如进行数学计算时未对分母是否为零进行检查。为了避免这类异常,可以在执行...

    java异常 exception

    - **RuntimeException 及其子类**:这类异常通常是由于程序设计问题引起的,如数组越界 (`ArrayIndexOutOfBoundsException`) 或除零错误 (`ArithmeticException`)。 #### 四、异常处理的基本结构 异常处理的核心...

    ASP.NET MVC中异常Exception拦截的深入理解

    本文将深入探讨ASP.NET MVC中异常Exception拦截的机制和实现。 一、异常处理的重要性 在开发Web应用时,由于各种不可预知的因素,如用户输入错误、网络问题或服务器故障,可能会引发异常。这些异常如果未经处理,...

    exception 异常处理 exception

    自定义异常是根据业务需求自定义的一类异常,通过继承 `Exception` 或其子类实现。在上述代码示例中,定义了一个名为 `MyException` 的自定义异常类,它继承了 `Exception`。 - **定义自定义异常类**: ```java ...

    Retrofit2+Rxjava2网络请求异常统一封装处理

    exception = new ApiException(-1, "网络连接异常"); } else { // 其他未知异常 exception = new ApiException(-1, "服务器内部错误"); } listener.onError(exception); }); } } ``` 在这个工具类中,我们...

    高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架

    其中异常类 Exception 又分为运行时异常(RuntimeException)和非运行时异常,这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。 二、异常的捕获和处理 Java ...

    UncaughtException不让Android应用异常退出

    "UncaughtException不让Android应用异常退出"这个主题,就是关于如何处理程序中的未捕获异常,以防止应用突然崩溃,从而提升用户体验。在这个问题上,我们可以从以下几个方面来探讨: 1. **...

    Java异常处理及应用.docx

    其中异常类 Exception 又分为运行时异常(RuntimeException)和非运行时异常,这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。 Error 是程序无法处理的错误,...

    java 除0发生的算术异常(ArithmeticException)

    总的来说,`ArithmeticException`是Java中常见的运行时异常之一,通过合理的异常处理和输入验证,我们可以避免这类异常的发生,提高程序的健壮性。理解并妥善处理这种异常对于编写稳定且可靠的Java程序至关重要。

    C++Exception 异常处理 源码

    5. **异常规格(Exception Specifications)**: 可以在函数声明中使用`noexcept`关键字指定函数是否可能会抛出异常。这有助于编译器进行优化,并可以在违反规格时引发`std::terminate()`。 6. **异常安全**: 在...

    android全局异常捕获 exception_global

    标题"android全局异常捕获 exception_global"和描述都指向了这个主题,表明我们将探讨如何在Android应用程序中实现全面的异常处理。 全局异常捕获通常涉及到创建一个全局的错误处理器,它能在应用程序的任何地方...

    异常示例(Exception)

    异常(Exception)是程序运行时出现的错误情况,它中断了正常的代码执行流程。本篇文章将深入探讨Java异常处理机制,以及如何利用提供的三个示例文件(demo2、demo3、demo1)来理解这一概念。 Java异常处理基于五个...

    异常日志捕获ExceptionLog

    标题提到的“异常日志捕获ExceptionLog”是一种常见的实践,旨在记录应用运行过程中的错误和异常信息,以便后续分析和调试。 在AndroidManifest.xml文件中,我们通常会在`<application>`节点下添加自定义的应用类...

    c++异常处理exception.rar

    异常类通常是继承自`std::exception`的类,提供了基本的错误信息和处理方式。 2. `try`块: `try`块是用来包含可能抛出异常的代码的。如果在`try`块内的代码抛出了异常,程序会立即停止执行`try`块内的剩余代码,...

    Oracle_存储过程exception异常处理大全及实例经典最终.docx

    ### Oracle 存储过程 Exception 异常处理详解 #### 1. 异常处理概念 在 Oracle 存储过程中,异常处理是一项非常重要的技术,它能够帮助开发人员处理那些不可预见的情况,确保程序的健壮性和稳定性。异常处理主要...

    异常处理流程图Exception

    本文将深入探讨异常处理流程,通过分析给定的“异常处理流程图Exception”来理解其核心概念。 ### 异常处理概述 异常处理是一种编程模式,用于捕捉和响应程序运行时可能发生的非正常事件,这些事件被称为异常。在...

    第十八章异常(Exception)处理

    异常(Exception)是Java中一种特殊的运行错误对象,它代表了程序执行期间发生的非正常情况,需要进行处理以避免程序中断。 18.1 异常类结构与组成 Java中的异常都源自`java.lang.Throwable`类。Throwable有两个...

Global site tag (gtag.js) - Google Analytics