自定义异常怎么写

1.JAVA 自定义异常是怎么使用的在别的方法可能抛你这个异常的时候 。你在这个方法上面加一个 throws MyException
然后在可能发生异常的代码里面写throw new MyException();
比如说 你写了个除法的方法 。.. chufa(int a, int b)
当b == 0 的时候你可以这样
if(b == 0){
throw new MyException("除数不能为0");
}
这样就抛出了你自己的异常来提示错误信息..
2.C++自定义的类成员函数,怎么自定义异常try
{
int *p = new int[10];
if (!p)
throw 1;
}
catch(int)
{
cout<<"error";
}
自定义异常就是把可能出错的地方用try, 然后在try里如果检测到异常, 用throw抛出一个异常, 为了区别异常, 用类型区别, 因为一个try里可能有多个错误类型.
然后用catch把相对应的类型接收, 然后执行相对应的代码.
这里抛出的类型只是为了作区别, 没多大的实际用处. 不过你可以:
catch(int i)
{
cout<<i<<endl;
}
这样会输出1
3.如何编写和应用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); }} 下面是应用这个自定义异常类的例子: //完整程序存在本书配套资源目录为Ch11中名为.java 。
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);} 。或者,可以创建一个缺省对象,然后在catch中打印具体信息,如: throw new NegativeAgeException();。
catch (NegativeAgeException e) { System.out.println("Please enter a positive age"); 将产生与第一个例子相同的效果 。11.7.2 自定义异常处理 无论是利用标准API异常类来处理特殊的异常,或者编写自定义的异常类来达到同样目的,问题的关键是:<!--[if !supportLists]-->1. 当这个异常发生时,如何及时捕获这个异常 。
<!--[if !supportLists]-->2. 捕获这个异常后,如何产生精确的异常处理信息 。毋庸置疑,我们不可能期待JVM自动抛出一个自定义异常,也不能够期待JVM会自动处理一个自定义异常 。
发现异常、抛出异常以及处理异常的工作必须靠编程人员在代码中利用异常处理机制自己完成 。一般情况下,发现和抛出一个自定义异常通过在try程序块中利用if和throw语句完成,即: try {。
if (someExceptionConditon == true) { throw new CustomException("A custom exception xxx occurred. Please check your entry 。")。
}catch (CustomException e) {。} 而打印异常处理信息可以在抛出时包括在构造器的参数中,或者包括在处理这个异常的catch中 。