
您可以在Java中创建自己的异常,它们被称为用户自定义异常或自定义异常。
要创建用户自定义异常,请扩展上述类之一。要显示消息,请重写toString()方法或通过以字符串格式绕过消息调用超类参数化构造函数。
MyException(String msg){
super(msg);
}
Or,
public String toString(){
return " MyException [Message of your exception]";
}然后,在其他需要引发此异常的类中,创建一个已创建的自定义异常类的对象,并使用throw关键字抛出异常。
MyException ex = new MyException ();
If(condition……….){
throw ex;
}所有异常都必须是Throwable的子类。
立即学习“Java免费学习笔记(深入)”;
如果您想编写一个由Handle或Declare规则自动强制执行的已检查异常,您需要扩展Exception类。
如果您想编写一个运行时异常,您需要扩展RuntimeException类。
以下Java程序演示了如何创建一个自定义已检查异常。
在线演示
import java.util.Scanner;
class NotProperNameException extends Exception {
NotProperNameException(String msg){
super(msg);
}
}
public class CustomCheckedException {
private String name;
private int age;
public static boolean containsAlphabet(String name) {
for (int i = 0; i < name.length(); i++) {
char ch = name.charAt(i);
if (!(ch >= 'a' && ch <= 'z')) {
return false;
}
}
return true;
}
public CustomCheckedException(String name, int age){
if(!containsAlphabet(name)&&name!=null) {
String msg = "Improper name (Should contain only characters between a to z (all small))";
NotProperNameException exName = new NotProperNameException(msg);
throw exName;
}
this.name = name;
this.age = age;
}
public void display(){
System.out.println("Name of the Student: "+this.name );
System.out.println("Age of the Student: "+this.age );
}
public static void main(String args[]) {
Scanner sc= new Scanner(System.in);
System.out.println("Enter the name of the person: ");
String name = sc.next();
System.out.println("Enter the age of the person: ");
int age = sc.nextInt();
CustomCheckedException obj = new CustomCheckedException(name, age);
obj.display();
}
}编译时,上述程序会生成以下异常。
CustomCheckedException.java:24: error: unreported exception NotProperNameException; must be caught or declared to be thrown throw exName; ^ 1 error
如果您只是将自定义异常继承的类更改为RuntimeException,它将在运行时抛出
class NotProperNameException extends RuntimeException {
NotProperNameException(String msg){
super(msg);
}
}如果您运行上述程序,将NotProperNameException类替换为上面的代码并运行它,将生成以下运行时异常。
Enter the name of the person: Krishna1234 Enter the age of the person: 20 Exception in thread "main" july_set3.NotProperNameException: Improper name (Should contain only characters between a to z (all small)) at july_set3.CustomCheckedException.<init>(CustomCheckedException.java:25) at july_set3.CustomCheckedException.main(CustomCheckedException.java:41)
以上就是在Java中的自定义异常的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号