Java 自定义异常类(RuntimeException的子类)

RuntimeException类为运行时异常类,它的父类为Exception类

当运行时出现异常时,可以声明或捕获,一般不声明,一般会捕获,至少保证程序继续运行

举个例子:

定义了一个Word类,该类是单词类,根据单词的业务逻辑,单词中只能含有a~z、A~Z里的字符,但是在初始化Word对象可能会有含有其他字符,当含有其他字符时,就让程序报错。

代码如下:

定义异常类,继承RuntimeException类

public class WordsCanOnlyBeComposedOfEnglishLetters extends RuntimeException{//继承Exception为编译时异常

	public WordsCanOnlyBeComposedOfEnglishLetters(String str) {
		
		super(str);
	}
}

定义实体类Word

public class Word {
	
	private String word;
	
	public Word() {
		word="";
	}
	public Word(String str) /*声明这里可能出现异常*/ {
		for(int i=0;i<str.length();i++) {
			if(!((str.charAt(i)>=A&str.charAt(i)<=Z)||(str.charAt(i)>=a&str.charAt(i)<=z))) {
				throw new WordsCanOnlyBeComposedOfEnglishLetters("含有非法字符");
			}
		}
		word=str;
	}
	public void setWord(String str) /*声明这里可能出现异常*/ {
		for(int i=0;i<str.length();i++) {
			if(!((str.charAt(i)>=A&str.charAt(i)<=Z)||(str.charAt(i)>=a&str.charAt(i)<=z))) {
				throw new WordsCanOnlyBeComposedOfEnglishLetters("含有非法字符");
			}
		}
		word=str;
	}
	public String getWord(String str) {
		return word;
	}
}
//主类代码
public class Main {
	
	public static void main(String[] args) {
		//捕获异常
		try {
			
			Word w1=new Word("hj1");
			System.out.println("正常执行……");
		}catch(WordsCanOnlyBeComposedOfEnglishLetters w){
			w.printStackTrace();
		}
		System.out.println("执行结束!");
		
	}
}
经验分享 程序员 微信小程序 职场和发展