java怎么写异常

1.如何编写java中的自定义异常类

编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程。常用的编写自定义异常类的模式如下:

public class CustomException extends Exception { //或者继承任何标准异常类

public CustomException() {} //用来创建无参数对象

public CustomException(String message) { //用来创建指定参数对象

super(message); //调用超类构造器

}

}

当然也可选用Throwable作为超类。其中无参数构造器为创建缺省参数对象提供了方便。第二个构造器将在创建这个异常对象时提供描述这个异常信息的字符串,通过调用超类构造器向上传递给超类,对超类中的toString()方法中返回的原有信息进行覆盖。

来讨论一个具体例子。假设程序中需要验证用户输入的表示年龄的数据必须是正整数值。我们可以按照以上模式编写这个自定义异常类如下:

public class NegativeAgeException extends Exception {

//或者:extends Throwable

public NegativeAgeException() {}

public NegativeAgeException(String message) {

super(message);

}

}

下面是应用这个自定义异常类的例子:

try{

String ageString = JOptionPane.showInputDialog("Enter your age: ");

if (Integer.parseInt(ageString) < 0)

throw new NegativeAgeException("Please enter a positive age");

else

JOptionPane.showMessageDialog(null, ageString, "Age", 1);

}

catch(NegativeAgeException e){

System.out.println(e);

}

2.在java里面怎么定义异常类用于自己编写的类的异常处理

编写异常类 继承Exception

package aa.exception;

public class bbException extends Exception

{

public bbExistsException() {}

public bbException(String message)

{

super(message);

}

}

再在适当的时候抛

throw new bbException("该记录已经存在");

3.Java中,如何进行异常处理

处理异常:

try{

可能产生异常的代码

}catch(具体的异常对象){

产生异常了要做什么处理

当然,如果你不处理,那么就可以用throw + 异常对象 的形式抛出

}finally{

不管是否产生异常,都要执行这里的代码

}

用到throw 抛出异常的时候,要在方法的申明处的参数列表后+throws +该方法要抛出的异常类型,可以是多个。

4.详细描述java是如何处理异常的

当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用。)

时,JAVA就会用异常对象来描述。 JAVA中用2种方法处理异常: 1.在发生异常的地方直接处理; 2.将异常抛给调用者,让调用者处理。

JAVA异常可分为3种: (1)检查性异常:java.lang.Exception (2)运行期异常:java.lang.RuntimeException (3)错误:java.lang.Error 顶层是java.lang.Throwable类,检查性异常,运行期异常,错误都是这个类的子孙类。 java.lang.Exception和java.lang.Error继承自java.lang.Throwable,而java.lang.RuntimeException继承自java.lang.Exception. 检查性异常------程序正确,但因为外在的环境条件不满足引发。

例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。

对商用软件系统,程序开发者必须考虑并处理这个问题。JAVA编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

运行期异常------这意味着程序存在bug,如数组越界,0被除,入参不满足规范。..这类异常需要更改程序来避免,JAVA编译器强制要求处理这类异常。

错误------一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。

错误在程序中无须处理,而有运行环境处理。 如何处理异常? 1.try。

catch 程序运行产生异常时,将从异常发生点中断程序并向外抛出异常信息。 Java代码 int x = (int)(Math.random()*5); int y = (int)(Math.random()*10); int[] z =new int[5]; try { System.out.println("y/x="+(y/x)); System.out.println("y="+y+"z[y]="+z[y]); } catch (ArithmeticException exc1) { System.out.println("算术运算异常:"+exc1.getMessage()); } catch (ArrayIndexOutOfBoundsException exc2) { System.out.println("数据越界异常:"+exc2.getMessage()); } 说明:ArithmeticException和ArrayIndexOutOfBoundsException都属运行期异常:java.lang.RuntimeException,如果不用try。

catch捕获,程序也是可通过编译的,但如果属于检查性异常:java.lang.Exception,必须而且一定要用try。catch。

对其进行处理。 2.finally 如果把finally块置try。

catch。语句后,finally块一般都会得到执行,它相当于一个万能的保险,即使前面的try块发生异常,而又没有对应异常的catch块,finally块将马上执行。

以下情形,finally块将不会被执行: (1)finally块中发生了异常; (2)程序所在线程死亡; (3)在前面的代码中用了System.exit(); (4)关闭CPU。 3.多个异常的处理规则: 定义多个catch可精确地定位异常。

如果为子类的异常定义了特殊的catch块,而父类的异常则放在另外一个catch块中,此时,必须满足以下规则:子类异常的处理块必须在父类异常处理块的前面,否则会发生编译错误。所以,越特殊的异常越在前面处理,越普遍的异常越在后面处理。

这类似于制订防火墙的规则次序:较特殊的规则在前,较普通的规则在后。 自己也可以定义并抛出异常,方法是2步:创建异常,抛出异常(首先实例化一个异常对象,然后用thow抛出)合在一起就是---- thow new IOException("异常说明信息")。

将创建异常,抛出异常合在一起的好处是:创建异常时,会包含异常创建处的行信息,异常被捕获时可以通过堆栈迹(stack Trace)的形式报告这些信息。如果在同一行代码创建和抛出异常,对于程序的调试将非常有用。

所以,thow new XXX()已经成为一个标准的异常抛出范式。 在定义一个方法时,方法块中调用的方法可能会抛出异常,可用上面的thow new XXX()处理,如果不处理,那么必须在方法定义时,用thows声明这个方法会抛出的异常。

对异常的处理,有一条行之有效的默认规则:向上抛出-----被调用类在运行过程中对遇到的异常一概不作处理,而是直接向上抛出,一直到最上层的调用类,调用类根据应用系统的需求和特定的异常处理规则进行处理,如向控制台输出异常堆栈信息,打印在日志文件中。用一句形象的话来说,就是谁使用,谁(最上层的调用类)处理。

5.如何用Java程序来编写一个异常

class MyException extends Exception //自定义的异常类 继承Exception类

{

private String exceptionName; //定义一个私有变量,用来为自定义异常

public MyException(){} //创建一个无参数的构造函数

public MyException(String exceptionName){ //创建一个有参数的构造函数,传入的参数为前面定义的异常名称

this.exceptionName=exceptionName;

}

public String getExceptionName(){ //定义一个方法,提供给外部来获取私有变量

return this.exceptionName;

}

public static void main(String [] args){

try{

System.out.println("自定义的异常类对象");

throw new MyException("自定义的异常");//抛一个自定义的异常类对象,传入的参数就是给控制台看的异常

}catch(MyException e){

System.out.println("异常信息:"+e.getExceptionName());

}

}

}

我已经尽力你……你懂的!

6.java中常见的几种异常

1、空指针异常类:NullPointerException

调用了未经初始化的对象或者是不存在的对象。经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针, 即把数组的初始化和数组元素的初始化混淆起来了。

数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。

2、数据类型转换异常:java.lang.ClassCastException

当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码。

Object obj = new Integer(0);

String str = obj;

3、没有访问权限:java.lang.IllegalAccessException

当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常。

4、方法的参数错误:java.lang.IllegalArgumentException

比如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

5、数组下标越界异常:java.lang.IndexOutOfBoundsException

查看调用的数组或者字符串的下标值是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了。

还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候先查看一下数组的length,以免出现这个异常。

6、文件已结束异常:EOFException

当程序在输入的过程中遇到文件或流的结尾时,引发异常。因此该异常用于检查是否达到文件或流的结尾

7、文件未找到异常:FileNotFoundException

当程序试图打开一个不存在的文件进行读写时将会引发该异常。该异常由FileInputStream,FileOutputStream,RandomAccessFile的构造器声明抛出,即使被操作的文件存在,但是由于某些原因不可访问,比如打开一个只读文件进行写入,这些构造方法仍然会引发异常。

8、字符串转换为数字异常:NumberFormatException

当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常.如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。

但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。

9、指定的类不存在: java.lang.ClassNotFoundException

这里主要考虑一下类的名称和路径是否正确即可,通常都是程序试图通过字符串来加载某个类时可能引发异常。比如:调用Class.forName;或者调用ClassLoad的finaSystemClass;或者LoadClass;

10、实例化异常:java.lang.InstantiationException

当试图通过Class的newInstance方法创建某个类的实例,但程序无法通过该构造器来创建该对象时引发。Class对象表示一个抽象类,接口,数组类,基本类型 。该Class表示的类没有对应的构造器。

7.java哪些地方要写异常处理

如果异常是数组下标越界 错误的数据类型转换之类的RuntimeException就可以不写异常处理,因为RuntimeException出现比较频繁,处理也比较麻烦,如果每次都要catch住会影响程序的可读性和效率,

一般都把它交给系统自己去处理就好。

所有可能抛出异常的语句都要写异常处理,你能处理的就catch住,不能处理或不想处理就往外抛。

像你提到的 SQLException ,还有其他例如IOException等继承自Exception的异常都要(RuntimeException虽然也是继承自Exception,但上面已经说了可以写异常处理,也可以不写)。

子类继承父类,如果父类有异常抛出也要写异常处理。如果是你自己自定义的异常当然也要记得写异常处理。

8.java异常处理应该怎么学

异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if。

else。来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦! Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的异常包括错误概念),定义异常处理的规范,在1.4版本以后增加了异常链机制,从而便于跟踪异常!这是Java语言设计者的高明之处,也是Java语言中的一个难点,下面是我对Java异常知识的一个总结,也算是资源回收一下。

一、Java异常的基础知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。

有些异常需要做处理,有些则不需要捕获处理,后面会详细讲到。 天有不测风云,人有旦夕祸福,Java的程序代码也如此。

在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑异常发生时如何处理。 Java中的异常用对象来表示。

Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。 异常类从哪里来?有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。

Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。 异常的对象从哪里来呢?有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的异常。

二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。 异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。

Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。

你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执行return之前执行,一般结构如下: try{ 程序代码 }catch(异常类型1 异常的变量名1){ 程序代码 }catch(异常类型2 异常的变量名2){ 程序代码 }finally{ 程序代码 } catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。

catch的类型是Java语言中定义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要! Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。

同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。 Java异常处理是Java语言的一大特色,也是个难点,掌握异常处理可以让写的代码更健壮和易于维护。

二、Java异常类类图 下面是这几个类的层次图: java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.Error java.lang.ThreadDeath 下面四个类的介绍来自java api 文档。 1、Throwable Throwable 类是 Java 语言中所有错误或异常的超类。

只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。

两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。

2、Exception Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。 3、Error Error 是 Throwable 的子类,表示仅靠程序本身无法恢复的严重错误,用于指示合理的应用程序不应该试图捕获的严重问题。

在执行该方法期间,无需在方法中通过throws声明可能抛出但没有捕获的 Error 的任何子类,因为Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try。catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。

4、。

java怎么写异常

转载请注明出处育才学习网 » java怎么写异常

知识

淘宝模版名称怎么写

阅读(206)

本文主要为您介绍淘宝模版名称怎么写,内容包括淘宝模板名称怎么写,淘宝模板名称怎么填,淘宝模板名称怎么写。运费模板名称根据自己的需求填写,这个名称没有什么要求,不要有特殊符号和空格即可。 发布商品的时候,设置“模板名称”、“宝贝地址

知识

论文的理论价值怎么写

阅读(321)

本文主要为您介绍论文的理论价值怎么写,内容包括论文的理论和学术价值怎么写,论文的理论意义和实践意义怎么写,★论文的学术价值怎么写。淆了使用价值和价值的概念,实际上是要素创造财富(使用价值)论;其中之二是物化劳动创造价值论,其关键是混淆

知识

枪声怎么写

阅读(273)

本文主要为您介绍枪声怎么写,内容包括枪声怎么填声音,如何描写枪声,填写表示声音的词语:枪声()。砰砰读音:【pēng pēng】解释:拟声词,枪击时发出的声音。造句:(1)、他心如鹿撞,心砰砰的跳,心里七上八下,心情如激荡的湖水一样

知识

邮钱怎么写

阅读(183)

本文主要为您介绍邮钱怎么写,内容包括老人过世后邮钱的格式怎么写,给死去的亲人邮钱怎么写地址,老人过世后邮钱的格式怎么写我姥姥去年没了这不是到了春节么,。传说人死后其灵魂都在被黑白二常拘到阴界,由四大判官之生死薄将其审判其在阳世

知识

当字的篆体怎么写

阅读(330)

本文主要为您介绍当字的篆体怎么写,内容包括“当”字小篆字怎么写,“当”字小篆字怎么写,之的篆体字怎么写。之的篆体字写法如下图:

知识

你先怎么写

阅读(183)

本文主要为您介绍你先怎么写,内容包括以"你先来"写一篇作文,以你先为话题写作文,你先来的作文。以绿为话题写作文 红,黄,蓝,绿,青,白,紫世界上真是色彩万分,但我更钟爱绿色,因为绿是宁静的色彩,绿是欣欣向荣的象征,绿是生命的依托,

知识

哪怎么写啊

阅读(193)

本文主要为您介绍哪怎么写啊,内容包括那怎么写啊我不知道怎么写了,怎么写啊,用什么什么的什么的什么怎么写啊。在郁郁葱葱的森林里,住着一只小白兔,早上小白兔挎着篮子去采蘑菇。在山里,小白兔采了满满一篮子的蘑菇,累的满头大汗,腰酸背痛,于是它

知识

检影验光怎么写结果

阅读(432)

本文主要为您介绍检影验光怎么写结果,内容包括检影验光结果,谁能告诉我检影验光练习的详细方法谢谢,眼科检影结果怎么看。检影方法 散瞳验光 散瞳,12岁以下需用阿托品散瞳,散3天后验光,3周后复验;12岁以上年轻人托品酰胺散瞳,年轻的点6次,成年点3

知识

高中物理论文怎么写

阅读(165)

本文主要为您介绍高中物理论文怎么写,内容包括高中物理论文怎么写,高中的物理论文怎么写拿去参加比赛的,高一物理论文该怎样写。如何在物理教学中提高学生兴趣兴趣是个体积极探究某种事物或进行某种活动,并在其中产生积极情绪体验的心理倾向

知识

软件测试项目经验怎么写

阅读(209)

本文主要为您介绍软件测试项目经验怎么写,内容包括软件测试项目介绍和项目经验怎么写,软件测试面试时项目经验怎么介绍需要从哪几方面说,软件测试项目总结怎么写啊高手指教下。我本身是做软件行业的,已经做了七八年了,给你一些建议,仅供参考~

知识

合同法论文怎么写

阅读(165)

本文主要为您介绍合同法论文怎么写,内容包括合同法论文要怎么写,谁能帮我写一篇关于合同法的论文啊救命啊我的论文只要是关于合同法,谁知道合同法论文该怎么写啊。摘要:随着我国市场经济的日益发展发展,格式合同有了广泛的应用和发展空间。格

知识

宝峰对讲机怎么写频

阅读(333)

本文主要为您介绍宝峰对讲机怎么写频,内容包括宝峰对讲机怎么调频率,宝锋对讲机咋写频,宝峰UV82对讲机怎么手动写频谁有详细教程。假如上行 144150下行 147950(屏幕上显示的是下行接收频率)开机输入 147950 然后点 MENU 不停的动菜单 知道出

知识

兄妹房产协议书怎么写

阅读(218)

本文主要为您介绍兄妹房产协议书怎么写,内容包括兄妹房产协议书怎么写,兄妹房产协议书怎么写,兄妹之间房屋产权过户协议书怎么写。直系亲属房产过户协议书 直系亲属房产赠与合同 甲方(赠与人):_______________ 身份证号码:_______________

知识

职称论文评语怎么写

阅读(190)

本文主要为您介绍职称论文评语怎么写,内容包括职称论文的评语怎么写,怎样写好职称论文评语,论文评审意见怎么写。评价毕业论文,要坚持评分的标准,研究评语的写法,做到判分准确,评价公正,评语规范。毕业论文评阅成绩的标准根据有关规定,毕业论文的

知识

异常的长怎么写

阅读(167)

本文主要为您介绍异常的长怎么写,内容包括书法中书者常将某坚划写的异常的长木语常叫做什么,异常报告怎么写,异常两个字怎么写好看。“正常”两个字的连笔字写法如下图:

知识

苹果怎么写java

阅读(185)

本文主要为您介绍苹果怎么写java,内容包括苹果编写java程序用什么软件,苹果手机上可不可以写java,苹果手机上可不可以写java?。您好,有呀。苹果App Store是酝酿N多年又经营了N多年的在线服务,全世界也没有几个公司有能力经营。移动也只不过是

知识

java简历的工作描述怎么写

阅读(182)

本文主要为您介绍java简历的工作描述怎么写,内容包括从事java开发工作简历怎样写工作描述,JAVA简历上的工作描述应该怎么写,简历上的项目描述(JAVA)怎么写。可以通过以下四点概况写:java程序开发岗位,主要负责:代码编写、数据库操作、sql语句优

知识

java安卓接口怎么写

阅读(209)

本文主要为您介绍java安卓接口怎么写,内容包括androidjava怎么写接口,请问用java给androidapp写接口要怎么写呢,java安卓怎么实现定义接口。接口A.javapublic interface A {public void TestA();}接口B.javapublic inte

知识

java里的main函数怎么写

阅读(241)

本文主要为您介绍java里的main函数怎么写,内容包括java的main函数如何写,javamain函数里写什么,JAVA冒泡法的main函数怎么写。import java.io.*;//输入输出控制包class Maopao{ public static int[] maopao(i

知识

java职业规划怎么写

阅读(704)

本文主要为您介绍java职业规划怎么写,内容包括Java程序员如何职业规划,做java的职业规划,程序员的职业生涯规划。程序员首先需要提高系统设计能力。但是,很多在企业工作的程序员的知识架构很难跟上。中科天博谢新华老师直率的指出:"现在很多程

知识

java培训描述怎么写

阅读(186)

本文主要为您介绍java培训描述怎么写,内容包括Java工程师工作描述怎么写,java软件工程师的工作描述怎么写,java培训机构出来找工作,简历怎么写才好。

知识

java获取src文件路径怎么写

阅读(350)

本文主要为您介绍java获取src文件路径怎么写,内容包括java获取src下的文件路径怎么写,java获取src文件路径怎么写,java中获取src的路径怎么写。在java中获得文件的路径在我们做上传文件操作时是不可避免的。web 上运行 1:this.getClass().g

[/e:loop]