「写异常java」写异常报告
今天给各位分享写异常java的知识,其中也会对写异常报告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何编写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);
}
如何用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());
}
}
}
我已经尽力你……你懂的!
Java编程中 常见的异常有哪几种
相信作为程序员的我们在对程序进行编译过程中经常会遇到错误,或者在运行过程中出现错误,在这里主要跟大家谈谈经常遇到的一些异常与错误,以及解决办法。
异常是指程序在编译或运行过程出现的错误。
在java.lang包中Throwable包含了所有的异常。
Error (错误) 和Exception(异常)
(1)Error(错误)
一旦发生无法修复,但可以避免发生。
常见错误类:
IOError:I/O错误,当发生严重的I/O错误时,抛出此错误。
VirtualMachineError :虚拟机错误,当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。
StackOverflowError:栈内存满了,当应用程序递归太深而发生堆栈溢出时,抛出该错误。
OutofMemoryError:堆内存满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,Java 虚拟机无法分配一个对象,这时抛出该异常。
以上是一些常见的错误,在Error类中还有一些别的错误(参照文件Java.lang.Throwable.Error).
(2)Exception(异常)
一旦发生,可以捕获并处理,不会导致程序终止,有时可以避免有时无法避免。
异常的分类:
1.编译时异常(需要强制处理) 2.运行时异常(不需要强制处理)
常见的异常有:
IOException:输入输出流异常
FileNotFoundException:文件找不到的异常
ClassNotFoundException:类找不到的异常
DataFormatException:数据格式化异常
NoSuchFieldException:没有匹配的属性异常
NoSuchMethodException:没有匹配的方法异常
SQLException:数据库操作异常
TimeoutException:执行超时异常
常见的运行时异常:
RuntimeException:运行时异常
NullPointerException:空指针异常
ArrayIndexOutofBoundsException:数组越界异
ClassCastException:类型转换异常
IllegalArgumentException:非法的参数异常
InputMismatchException:输入不匹配
以上是常见的一些异常,另外还有别的异常,参见文件:Java.lang.Throwable.Exception
既然我们常常会遇到一些异常,那我们如何来处理这些异常就是一个急需解决的事情。
(1) 如何处理编译时异常?
方法一:将需要处理的代码块放在一个try...catch...中
try{
//需要处理异常的代码
}catch(XXXException ef){
ef.printStackTrace();
}
我们方法一就是要将我们不确定的代码放入try......catch中,先进行try一下,如果没有异常,则不会触发catch,没有输出,一旦出现异常,那么catch就会工作,在catch中捕获异常信息,根据异常信息进行补救措施。
如以下代码:
方法二:在出现异常的方法上直接向上抛出异常,throws
void ff() throws XXXException{
}
将出现的异常的代码中,放入如上的方法中,就会将异常抛给该方法的上一级,在主函数上继续向上抛,最终抛给JVM java虚拟机,让JVM来解决该问题。
如代码:
注意:在catch和throws的时候如果不确定是什么异常,就直接写一个Exception.
(2) 如何处理运行时异常?
1.一般情况下,运行时异常是不用处理的
2.在某些情况下,如果对发生异常的结果进行处理,也可以对运行时异常进行try...catch...
以上就是一些我们处理编译时异常和运行时异常的方法。
在程序出现异常时,有时候我们可以自定义异常,以便我们能够发现是什么异常。
那么如何自定义异常??
1.当运行时,程序出现意外,可以抛出异常对象来结束程序
如:
//抛出运行时异常对象
RuntimeException ef = new RuntimeException("下标越界!index:"+index+" ,size:"+size());
throw ef;
2.对于编译时异常,同样可以抛出异常对象
但在方法定义时候必须加上throws
如:
public void test(int t) throws Exception{
if (t 0 || t 100) {
Exception ef = new Exception("数据错误");
throw ef;
}
}
例如:
运行结果:
从结果可以看出,我们在输入数据的时候出现错误,这样通过自定义异常能够让我们更直接快速的找到运行或编译时的异常。
在上述中我们分别提到了三种throw,分别是Throwable,Throws以及throw,那么到底三者有什么区别?
Throwable:是指在在Java.lang包中的一个类,其包含了所有的异常和错误,其中类Error和Exception 是它
的子类。
Thows:是指在解决编译时异常,将方法中异常抛给上一级,在方法后面要加Throw Exception来进行抛。
throw:是指在自定义异常时,如果方法出现异常,那么将作为引用方法的对象抛出。即抛出异常。
希望对您有所帮助!~
JAVA 编写异常?求教高手
呵呵。。。
public
class
E{
static
void
age(int
o)
throws
Exception{
if(o0)
throw
new
NegativeAgeException("This
is
NegativeAgeException");
else
if(o16)
throw
new
TooYangException("This
is
TooYangException");
else
if(o80)
throw
new
TooOldException("This
is
TooOldException");
}
public
static
void
main(String[]
args){
try{
age(90);
}
catch(NegativeAgeException
e){
e.printStackTrace();
}
catch(TooYangException
e){
e.printStackTrace();
}
catch(TooOldException
e){
e.printStackTrace();
}
catch(Exception
e){
e.printStackTrace();
}
}
}
class
NegativeAgeException
extends
Exception
{
public
NegativeAgeException()
{
super();
}
public
NegativeAgeException(String
message)
{
super(message);
}
public
NegativeAgeException(String
message,
Throwable
cause)
{
super(message,
cause);
}
public
NegativeAgeException(Throwable
cause)
{
super(cause);
}
}
class
TooYangException
extends
Exception
{
public
TooYangException()
{
super();
}
public
TooYangException(String
message)
{
super(message);
}
public
TooYangException(String
message,
Throwable
cause)
{
super(message,
cause);
}
public
TooYangException(Throwable
cause)
{
super(cause);
}
}
class
TooOldException
extends
Exception
{
public
TooOldException()
{
super();
}
public
TooOldException(String
message)
{
super(message);
}
public
TooOldException(String
message,
Throwable
cause)
{
super(message,
cause);
}
public
TooOldException(Throwable
cause)
{
super(cause);
}
}
用java编写异常
public class NoOprandException{
String a;
String b;
public NoOprandException(String a,String b){
this.a=a;
this.b=b;
}
public String errorException(){
if((a==nulla.equals(""))(b==nullb.equals(""))){
return "NoOprand错误!";
}
return;
}
}
public class OnlyOneException{
String a;
String b;
public OnlyOneException(String a,String b){
this.a=a;
this.b=b;
}
public String errorException(){
if((a==nulla.equals(""))||(b==nullb.equals(""))){
return "OnlyOne错误!";
}
return;
}
}
public class a{
public static void main(String[] args){
Scanner scan1=new Scanner(System.in);
Scanner scan2=new Scanner(System.in);
String line1=scan1.nextLine();
String line2=scan2.nextLine();
try{
throw new OnlyOneException(line1,line2);
}catch(OnlyOneException e){
System.out.print(e);
System.out.exit(0);
}
try{
throw new NoOprandException(line1,line2);
}catch(NoOprandException e){
System.out.print(e);
System.out.exit(0);
}
}
}
关于写异常java和写异常报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-06,除非注明,否则均为
原创文章,转载请注明出处。