「java创造异常」java产生异常
今天给各位分享java创造异常的知识,其中也会对java产生异常进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、常见的java异常有哪些?都是什么意思?
- 2、如何用Java程序来编写一个异常?
- 3、如何在java中创建一个“自定义异常类”?
- 4、JAVA中什么情况下会产生异常?
- 5、用java编写异常
- 6、在JAVA中如何创建一个自定义异常?
常见的java异常有哪些?都是什么意思?
1、ArithmeticException - 算术运算中,被0除或模除。
2、ArrayIndexOutOfBoundsException - 数组越界访问。
3、ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容。
4、ClassCastException - 类型转换异常。
5、IllegalArgumentException - 方法的参数无效。
6、IllegalThreadStateException - 试图非法改变线程状态,比方说试图启动一已经运行的线程。
7、NullPointerException - 试图访问一空对象的变量、方法或空数组的元素
8、NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)。
9、SecurityException - 如果Applet试图执行一被WWW浏览器安全设置所禁止的操作。
10、IncompatibleClassChangeException - 如改变了某一类定义,却没有重新编译其他引用了这个类的对象。如某一成员变量的声明被从静态改变为非静态,但其他引用了这个变量的类却没有重新编译,或者相反。
11、OutOfMemoryException - 内存不足,通常发生于创建对象之时。
12、NoClassDefFoundException - JAVA运行时系统找不到所引用的类。
13、IncompatibleTypeException - 试图实例化一个接口,Java运行时系统将抛出这个异常。
14、UnsatisfiedLinkException - 如果所需调用的方法是C函数,但Java运行时系统却无法连接这个函数。
15、InternalException - 系统内部故障所导致的异常情况,可能是因为Java运行时系统本身的原因。如果发现一可重现的InternalException,可以直接给Sun公司发电邮java@java.Sun.com。
如何用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中创建一个“自定义异常类”?
public class sssss {\x0d\x0a\x0d\x0apublic static void main(String[] args) {\x0d\x0a\x0d\x0a System.out.print("Please input an Integer: ");\x0d\x0a \x0d\x0a int value = new Scanner(System.in).nextInt();\x0d\x0a \x0d\x0a try{\x0d\x0a if(value
回答于 2022-11-16
JAVA中什么情况下会产生异常?
java产生异常的情况有很多种,比如说你想把一个字符串型“123”转成int型123,ok,这样没有问题。代码如下:
String a = "123";
int b = Integer.parseInt(a);
但是如果你尝试如下写法
String a = "abc";
int b = Integer.parseInt(a);
编译器是不会给你提示任何错误,只有等程序真正运行到此处的时候,才会发生异常,以为parseInt无法将字符串"abc"转成int型。
我举得例子只是异常中的一种
另外,Java 异常的种类有三大类,可分为可检测异常,非检测异常和自定义异常。
可检测异常
可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则,例如:sqlExecption 这个异常就是一个检测异常。你连接 JDBC 时,不捕捉这个异常,编译器就通不过,不允许编译。
非检测异常
非检测异常不遵循处理或声明规则。在产生此类异常时,不一定非要采取任何适当操作,编译器不会检查是否已解决了这样一个异常。例如:一个数组为 3 个长度,当你使用下标为3时,就会产生数组下标越界异常。这个异常 JVM 不会进行检测,要靠程序员来判断。有两个主要类定义非检测异常:RuntimeException 和 Error。
Error 子类属于非检测异常,因为无法预知它们的产生时间。若 Java 应用程序内存不足,则随时可能出现 OutOfMemoryError;起因一般不是应用程序的特殊调用,而是 JVM 自身的问题。另外,Error 一般表示应用程序无法解决的严重问题。
RuntimeException 类也属于非检测异常,因为普通 JVM 操作引发的运行时异常随时可能发生,此类异常一般是由特定操作引发。但这些操作在 Java 应用程序中会频繁出现。因此,它们不受编译器检查与处理或声明规则的限制。
自定义异常
自定义异常是为了表示应用程序的一些错误类型,为代码可能发生的一个或多个问题提供新含义。可以显示代码多个位置之间的错误的相似性,也可以区分代码运行时可能出现的相似问题的一个或者多个错误,或给出应用程序中一组错误的特定含义。例如,对队列进行操作时,有可能出现两种情况:空队列时试图删除一个元素;满队列时试图添加一个元素。则需要自定义两个异常来处理这两种情况。
用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中如何创建一个自定义异常?
自定义异常类型是从Exception类中派生的,所以要使用下面的声明语句来创建:
class自定义异常名extendsException{...}
关于java创造异常和java产生异常的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-21,除非注明,否则均为
原创文章,转载请注明出处。