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中。
另外应该注意在自定义异常发生之前,有可能产生标准异常的情况。例如,在一个需要验证年龄必须是正整数值的程序中,利用自定义异常类,如NegativeAgeException,验证输入的年龄是否正整数,即: try { 。
if (Integer.parseInt(ageString) < 0) throw NegativeAgeException("Please enter a positive age"); else 。 } catch (NumberFormatException e) { System.out.println(e); } catch (NegativeAgeException e) { System.out.println(e); } 。
注意在这个代码中,如果ageString是非法整数字符串,如“25ab”,系统将首先抛出NumberFormatException,而不会执行throw NegativeAgeException("Please enter a positive age")。所以应该在catch中加入对NumberFormatException的处理,如以上代码所示。
4.如何编写java中的自定义异常类
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);
}
}
5.Java自定义异常类
public void MyException extends Exception{
public MyExceprion(){
System.out.println("自定义异常");
}
}
public class Exam{
public static void mul() throws MyException{
if(自己写条件){
throw new MyException();
}
}
}
这个应该能看懂吧,我只是写了个结构没写完整程序的,你看懂这个就行,定义一个自定义异常,然后在你需要的地方抛出异常,在主方法中调用方法的时候达到一定条件就会抛出异常
6.自己自定义了一个异常后怎么调用呢
1)先定义一个类继承Exception(或者别的RuntimeException等);
2)然后写个方法可能抛出这个异常,并且什么情况下会抛出异常;
3)调用这个方法,写try,catch语句,捕获这个异常;
小例子,你参考看下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class UserNotFoundException extends RuntimeException {
public UserNotFoundException() {}
public UserNotFoundException(String message) {
super(message);
}
public void f() throws UserNotFoundException {
throw new UserNotFoundException("用户名不对");
}
}
public class Exception {
public static void main(String args[]) {
try {
new UserNotFoundException().f();
} catch (UserNotFoundException e) {
System.out.println(e.getMessage());
}
}
}
7.在JAVA中,用户程序如何自定义异常
/**
* class名:NewException
* class说明:在JAVA中,用户程序如何自定义异常?编程实现一个用户自定义异常
* @author Jr
*
*/
public class NewException extends Exception{
public NewException() {
super();
// TODO Auto-generated constructor stub
}
public NewException(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
}
public NewException(String message) {
super(message);
// TODO Auto-generated constructor stub
}
public NewException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
}
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
/**
* class名:ExceptionTest
* class说明:制造一个异常,来测试NewException类
* @author Jr
*
*/
public class ExceptionTest {
public static void main(String[] args) throws NewException {
System.out.println("开始正常");
try {
String str = null;
str.length();//将抛出异常
System.out.println("结束正常");
} catch (Exception e) {
e.printStackTrace();
throw new NewException("str.length()出现异常", e);
} finally{
}
}
}
自己定义一个异常只需继承(extends)Exception这个类或者Throwable这个类,然后继承父类的构造器就可以了