ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自定义异常类比较全

2022-07-23 17:31:55  阅读:112  来源: 互联网

标签:自定义 比较 add import new 异常 public


自定义异常类

当java内置异常都不能明确说明异常情况的时候,开发人员需要定义一些异常类用于描述自身程序中的异常信息,以区分其它程序的异常信息。

  • 自定义异常类可以继承Throwable类或者Exception,而不要继承Error类,自定义异常类之间也可以有继承关系,为自定义异常类设计构造方法,以方便构造自定义异常对象。

抛出自定义异常:

  • 定义了自定义异常类后,程序中的方法就可以在恰当的时候将该种异常抛出。注意要在方法的声明抛出该类型的异常

class Student
{
   public void speak(int m)throws MyException
  {
       if(m>1000)
      {
           MyException exception=new MyEception(m);
           throw exception;//抛到指定的处理异常的类
      }
       println("I can speak English"+m+"");
  }
}

自定义异常类处理:调用声明抛出自定义异常方法时,要进行异常处理具体可以采用前面介绍的两种方式。

总结:1.先自定义一个异常类,进行异常处理,然后编写一个类,该类有产生异常的方法。

2.这个产生异常的方法通过实例化异常类和抛出这个异常对象进行传递到异常类里面进行异常处理

如:异常类 对象=new 异常 类();

throw 对象 ;//抛到这个对象里面

package src;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
class MyExceptionZero extends Exception  
{    
  String message;
  MyExceptionZero()  
  {  
       this.message="除数不能为0!";
  }        
  public String toString()  
  {  
       return message;  
  }  
}  
public class Test4 extends JFrame
{
JLabel lab1,lab2,lab3;
JButton btn;
JTextField txtf1,txtf2,txtf3;
JPanel p;
Test4()
{
init();
}
public void init()
{
lab1=new JLabel("被除数:");
lab2=new JLabel("除   数:");
lab3=new JLabel("商   为:");
btn=new JButton("计算");
txtf1=new JTextField("1.25",10);
txtf2=new JTextField("0",10);
txtf3=new JTextField(10);
p=new JPanel();
p.add(lab1);
p.add(txtf1);
p.add(lab2);
p.add(txtf2);
p.add(lab3);
p.add(txtf3);
p.add(btn);
btn.addActionListener(new btnhandler());
this.setContentPane(p);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(220,160);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public static void main(String[] args)
{
new Test4().setTitle("第4题");
}
class btnhandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
double a=Double.parseDouble(txtf1.getText());
double b=Double.parseDouble(txtf2.getText());
DivZero r=new DivZero();
try
{
double c = r.division(a,b);
txtf3.setText(c+"");
}
catch(MyExceptionZero e1)
{
JOptionPane.showMessageDialog(null,e1.toString());
}
}
}
}
class DivZero
{
public double division(double a, double b) throws MyExceptionZero
{
if(b==0)
{
MyExceptionZero exception=new MyExceptionZero();
throw exception;
}
return a/b;
}
}
 

标签:自定义,比较,add,import,new,异常,public
来源: https://www.cnblogs.com/zjwcoblogs/p/16512277.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有