如何编写java中的自定义异常类
如何编写java中的自定义异常类?怎么捕获到出exception以外的异常信息!最好是一个通用的异常类;...
如何编写java中的自定义异常类?
怎么捕获到出exception以外的异常信息!
最好是一个通用的异常类; 展开
怎么捕获到出exception以外的异常信息!
最好是一个通用的异常类; 展开
6个回答
展开全部
编写自定义异常类实际上是继承一个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);
}
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);
}
展开全部
public class Exam {
public static void main (String[] args) {
try {
System.out.println(TestDemo.div(4, -2));
} catch (RuntimeException e) {
System.out.println(e.toString());
}
}
}
class TestDemo{
public static int div(int x,int y) {
if (y==0) {
throw new ArithmeticException();
}
if (y<0) {
throw new MyException("负数不符合我的要求");
}
return x/y;
}
}
class MyException extends RuntimeException{
private static final long serialVersionUID = 1L;//序列化ID,可以忽略。
public MyException(String message) {
super(message);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
继承RuntimeException
你想干嘛?sturts 1.2倒有一个异常捕捉类。非常之强悍,非常方便。
你想干嘛?sturts 1.2倒有一个异常捕捉类。非常之强悍,非常方便。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class MwException extends Exception{
public MwException(String msg)
{
super(msg);
}
public MwException(Throwable thMsg)
{
super(thMsg);
}
public MwException(String errMsg,Throwable expMsg)
{
super(errMsg,expMsg);
}
}
public MwException(String msg)
{
super(msg);
}
public MwException(Throwable thMsg)
{
super(thMsg);
}
public MwException(String errMsg,Throwable expMsg)
{
super(errMsg,expMsg);
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2L正解,如果是不需要强制try catch捕捉的,可以继承RuntimeException
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询