`
甘艳丽
  • 浏览: 52073 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

异常分析

阅读更多

1.异常是指在程序运行时出现的非正常事件.比如说:文件无法打开或创建以及空对象的操作。由于异常事件会导致错误,所以一个好的程序必须要对这些异常进行处理,来增加程序的“健壮性”。

2.在C语言中,为了处理异常,通常是通过调用函数通过返回值来处理的。而Java,多采用异常处理机制,这样能使程序更加易读,易懂,以及维护。

3.Throwable和throw以及throw三个关键字的区别:

   Throwable是所有异常类的超类(父类)。它的直接子类有Exception和Error.Error类及其子类用来处理程序中的异常时,一般是与硬件有关,不需要程序员去处理,Exception类及其子类用来处理异常时,一般是要我们程序员自己捕获并处理的。throw用于抛出异常,throws用于声明有异常抛出。

抛出异常的一般格式为:throw 异常对象名;或者,throw new 异常类名();

两种形式本质是一样的,但前一种需要先构造异常对象,后一只在抛出异常时才创建异常对象,所以经常使用第二种形式。当程序中出现throws出现时,说明该类可能发生异常,这就需要对异常进行处理,处理异常的方法有两种:一种是通过try-catch-finally处理(需要程序员自己操作),还有一种是将异常交给java虚拟机处理。

4.我写个例子来解释下异常是怎么处理的

public class throwsException{
	 public static void main(String [] args){
		 try{
		 chang(); 
	 }catch(Exception e){
		 System.out.println("这是在main方法中捕获的异常");}
	 }
	 public static void chang() throws Exception{//要声明抛出异常
		 Random random=new Random();
		 int a=random.nextInt(100);
		 try{
			 if(a==70){
				 System.out.println(a);
			 }
			 else{
				 throw new Exception();//抛出异常
			 }
		 }catch(Exception e){
			 System.out.println("这是在chang()异常");}
		 }
}
 

   因为chang方法中通过关键字(throws)声明有异常抛出,所以必须在主函数中强制捕获异常,如果没写try-catch语句,则会报错。

当生成的随机数不等于70时,会执行throw new Excetion()语句,throw语句将异常抛给catch。

5.try-catch-finally中,把会产生异常的语句写在try程序块中,可以有多个catch语句,catch语句是多选的,多个catch语句中的异常参数类型必须各不相同,如果try中发生了异常,系统将会从上到下依次查找catch语句中是否有异常参数类型与之匹配,catch中最后一个异常参数类型是所有上面catch语句异常参数类型的父类,如匹配,就进入该catch语句,如果都没有匹配,则进入finally语句。finally语句是资源保护快,不管系统是否找到与之匹配的catcch语句,finally中的语句都要执行。

6.常见的异常:

运行时的异常:

java.lang.ArrayIndexOutofBoundsExcetion(数组下标越界异常)

java.lang.ArithmeticException:/ by zero(零做除数异常)

java.lang.NullPointerException(空对象)

像这类异常编译是可以通过的,它是发生在运行中。如果发生这类异常,我们可以自己根据信息来改进程序。

检查型异常:

除了运行时的异常,其余都是检查型异常。比如说:从键盘中读入一个字符。如果你没有强制处理这类异常,将不能通过编译,它会提示以下信息:hasCheckException.java 4 未报告的错误java.io.Exception

7.自定义异常

如果系统预定义的类不能满足编程要求,我们可以自己定义异常类。自己定义的异常类必须是Throwable的直接或间接子类,不过一般情况是Exception的子类。自定义异常类会自动继承父类中可以继承的方法和属性,一般情况下,它需要声明两个构造方法:一个是不带参数的方法,一个是以字符串为参数,作为本异常类的具体信息:

我用一个例子说明下:

class MyException extends Exception{
	MyException(){
		super();
	}
	MyException(String s){
		super(s);
	}
}
 public class useMyException{
	public static void main(String [] args){
		try{
			throw new MyException("这是我自己定义的异常类");
		} catch(MyException e){
			System.out.println("异常信息:"+e.toString());
		}
	}
}

 



 我的心得体会:在学了异常类之后,让我对异常有了更多的理解,这个异常机制始终贯穿在我们编程中,当我们遇到异常时,不要太过于紧张,我们可以通过提示信息自己改正错误。

 

 

分享到:
评论

相关推荐

    生产制造业日常管理表格——异常分析对策表.doc

    异常分析对策表是这种管理中的一项重要工具,它用于记录、分析并解决生产过程中的各种问题,以防止同类问题的再次发生。以下是根据提供的文档内容解析出的几个关键知识点: 1. **异常管理**:异常管理是对生产过程...

    V6-001_移植SEGGER的硬件异常分析机制.rar

    在本文中,我们将深入探讨如何在STM32-V6开发板上移植SEGGER的硬件异常分析机制。STM32系列微控制器是基于ARM Cortex-M内核的高性能微控制器,广泛应用于嵌入式系统设计。而SEGGER是一家知名的嵌入式系统软件和服务...

    基于数据挖掘技术的用电异常分析系统设计.pdf

    基于数据挖掘技术的用电异常分析系统设计.pdf

    异常管理异常分析.pptx

    【异常管理与异常分析】 异常管理是IT领域中一个至关重要的环节,主要涉及对系统、网络、应用等出现的非正常情况的识别、响应和解决。异常管理的目标是确保业务的连续性和稳定性,减少由异常导致的服务中断或性能...

    制袋异常分析及预防控制培训教材.pptx

    制袋异常分析及预防控制培训教材.pptx

    基于数据挖掘的电子警察执法异常分析方法及应用研究.pdf

    执法异常分析方法包括执法量异常分析、横向聚类异常分析、测速值分布异常分析等。在执法量异常分析中,通过横向聚类异常判别,使用相关系数来判断执法量的异常程度,从而找出执法数据中异常高点。测速值分布异常分析...

    11 题目十一:1870-2018 年 Nino 1+2 区海平面温度异常分析.rar

    详细解题思路见《手把手教你完成课设作业使用Pandas对海平面温度异常进行分析,小白也能看的懂》https://pycoder.blog.csdn.net/article/details/107032338

    土壤温度数据异常分析

    因此,对于土壤温度传感器数据的异常分析显得尤为重要。本文将针对土壤温度传感器出现的异常数据进行分析,揭示可能的原因,并提供相应的处理建议。 在铜陵地区进行土壤温度监测时,我们注意到1#和2#传感器在特定...

    jvm异常分析文件

    本篇文章将深入探讨基于给定文件名的JVM异常分析主题,包括socket端口占用问题和内存溢出系统异常,以及如何解决这些问题以防止异常宕机。 首先,让我们关注"623scoket端口占有和内存溢出系统异常分析"这个文件。...

    品质异常分析.pptx

    在现代制造和生产领域,品质异常分析是保证产品和服务满足既定标准的关键环节。通过对生产过程进行品质监控和分析,企业能够及时发现并解决质量问题,进而提升整体的产品质量和生产效率。本文将深入探讨品质异常分析...

    CDMA系统RSSI异常分析指导书.pdf

    "CDMA系统RSSI异常分析指导书.pdf" CDMA系统RSSI异常分析指导书.pdf是关于CDMA系统的RSSI(Received Signal Strength Indication,接收信号强度指示)异常分析的指导书。本文档提供了RSSI异常现象的分析、分类、...

    MES异常分析.zip

    在这个名为“MES异常分析”的压缩包中,包含了一份PDF文档,可能详细阐述了MES在实际运行过程中可能出现的异常情况及其分析方法。 MES异常分析通常涉及以下几个方面: 1. **系统性能异常**:MES系统可能会由于硬件...

    数据分析:结构比率归因、量化异常分析.docx

    数据分析:结构比率归因、量化异常分析 数据分析是指通过对数据进行收集、整理、分析和解释,以获取有价值的信息和结论的一种科学方法。在本文中,我们将学习如何对数据进行分析,并对结构比率归因和量化异常分析...

    VxWorks系统异常分析方法.pdf

    《VxWorks系统异常分析方法》 在嵌入式系统开发中,VxWorks操作系统因其高效稳定的特点而广泛使用。然而,系统异常是开发者经常遇到的问题,本文将深入探讨VxWorks系统异常的分析方法,帮助开发者快速定位并解决...

    电子功用-基于电流异常分析的异常用电判断方法

    《电子功用-基于电流异常分析的异常用电判断方法》是一份深入探讨电力系统监测与管理的行业资料。这篇文档的核心内容聚焦于通过电流数据分析来识别并预防用电过程中的异常情况,旨在提高能源效率,保障电网安全,...

    CDMA系统RSSI异常分析指导书

    本文将详细介绍CDMA系统中RSSI异常分析的相关知识点。 一、RSSI的定义与作用 RSSI是基站或移动设备接收到的信号功率与噪声功率之比的对数表示,通常以负dBm为单位。它反映了无线链路的质量,数值越高,表示信号质量...

    电子功用-基于电压异常分析的异常用电判断方法

    "电子功用-基于电压异常分析的异常用电判断方法"这一主题,着重探讨了如何通过监测和分析电压变化来识别和预防不正常的用电情况。这种方法对于提高能源效率,保障电网稳定,以及预防因电气设备故障引发的安全事故...

    电子功用-基于电量异常分析的异常用电判断方法

    《电子功用-基于电量异常分析的异常用电判断方法》是一份深入探讨电力系统监测与管理的重要行业资料。文档详尽阐述了如何通过电量数据分析来识别并处理异常用电情况,这对于优化能源利用、保障电力系统安全及提升...

    MES异常分析.zip工业互联网MES智能制造系统资料下载

    MES异常分析.zip工业互联网MES智能制造系统资料下载MES异常分析.zip工业互联网MES智能制造系统资料下载MES异常分析.zip工业互联网MES智能制造系统资料下载MES异常分析.zip工业互联网MES智能制造系统资料下载 ...

    VxWorks系统异常分析方法.docx

    【VxWorks系统异常分析方法】 在VxWorks操作系统中,异常分析是排查和解决系统错误的关键步骤。本文主要探讨了几种常见的异常类型及其可能的原因,以及如何利用VxWorks提供的工具进行问题定位。 1. **指令异常**:...

Global site tag (gtag.js) - Google Analytics