用户自定义一个异常,编程创建并抛出某个异常类的实例。运行该程序并观察执行结果。
例:用户密码的合法化验证。
要求密码有4-6个数字组成。若长度不落在这个范围或不是有数字组成。抛出自己的异常。
要求:
1.面向对象编程。
2.异常定义,抛出,捕捉三个流程。

package shiyan;import java.util.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class PassWord {private  String password;private  JButton loginButton;private JTextField passwordText;private JLabel tipLabel;public PassWord(){CreateWindow();}public static void main(String[] args){PassWord zhouwei = new PassWord();zhouwei.action();}public void CreateWindow() {//创建窗口JFrame frame = new JFrame("窗口");frame.setSize(600, 400);//设置框架大小frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//frame.setDefaultCloseOperation()是设置用户在此窗体上发起 "close" 时默认执行的操作。//EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。//创建面板JPanel panel1 = new JPanel();//可以创建多个面板并在 JFrame 中指定位置,面板中我们可以添加文本字段,按钮及其他组件。            frame.add(panel1);// 添加面板panel1.setLayout(null);//设置布局为 null// 创建账号 JLabelJLabel userLabel = new JLabel("账号:");userLabel.setBounds(180,20,80,25);//setBounds(x, y, width, height)定义了组件的位置,x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。。panel1.add(userLabel);//添加JLabel//创建文本域用于输入账号JTextField userText = new JTextField(100);userText.setBounds(210,20,165,25);panel1.add(userText);//添加账号的文本域// 创建密码 JLabelJLabel passwordLabel = new JLabel("密码:");passwordLabel.setBounds(180,50,80,25);panel1.add(passwordLabel);/* *这个类似用于输入的文本域* 但是输入的信息会以点号代替,用于包含密码的安全性*///创建文本域用于输入密码passwordText = new JPasswordField(100);// 创建输入密码的文本域passwordText.setBounds(210,50,165,25);panel1.add(passwordText);// // 添加输入密码的文本域// 创建登录按钮loginButton = new JButton("注册");loginButton.setBounds(250, 80, 80, 25);panel1.add(loginButton);//提示文本域tipLabel = new JLabel("");// 创建 JLabeltipLabel.setBounds(180,100,300,25);//setBounds(x, y, width, height)定义了组件的位置,x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。width越大可输入的字数越多panel1.add(tipLabel);//添加JLabel    frame.setVisible(true);// 设置界面可见}//鼠标点击事件,try ,捕获异常public void action() {loginButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {password = passwordText.getText().trim();try {Check();tipLabel.setText("注册成功");}catch (PasswordException e1) {        tipLabel.setText(e1.getMessage());}}});}//检查输入是否有误,有误就抛错public void Check()throws PasswordException{if((password.length()<4 || password.length()>6) && (!password.matches("\\d*"))){throw new PasswordException("输入数字个数应为4-6个且只能输入数字");}if(password.length()<4 || password.length()>6){throw new PasswordException("输入数字个数应为4-6个");}if(!password.matches("\\d*")){throw new PasswordException("只能输入6个数字");}}//自定义异常类public class PasswordException extends Exception{public PasswordException(String str) {super(str);}public PasswordException() {}}
}

用户自定义一个异常,编程创建并抛出某个异常类的实例。运行该程序并观察执行结果。相关推荐

  1. spring框架做全局异常捕获_springboot springmvc抛出全局异常的解决方法

    springboot中抛出异常,springboot自带的是springmvc框架,这个就不多说了. springmvc统一异常解决方法这里要说明的是.只是结合了springboot的使用而已.直接上 ...

  2. 【java基础】java异常,捕获与抛出

    java异常,捕获与抛出 1.概念: 在java里,所有的异常都有一个共同的祖先Throwable(可抛出). Throwable:有两个重要的子类:Exception(异常)和Error(错误). ...

  3. 应该手动抛出什么异常?RuntimeException?

    Java程序员应该手动抛出什么异常?不能抛出RuntimeException吧? 收藏帖子 回复 秦三行 结帖率 96.88% if(sectionCodeT!=null && !&q ...

  4. 实现一个输入程序,接收从 键盘读入的字符串。当字符串中所含字符个数少于程序设定的上限时,输出这个字符串;否则抛出MyStringException1异常,在异常处理中要求重新输入新的字符串或者中断程序

    实现一个输入程序,接收从 键盘读入的字符串.当字符串中所含字符个数少于程序设定的上限时,输出这个字符串:否则抛出MyStringException1异常,在异常处理中要求重新输入新的字符串或者中断程序 ...

  5. 说说如何抛出Java异常

    以下是本人的一些分享,我热爱编程,希望能多交编程的爱好者,如果你也是其中一名,那么请加好友,大家关注一下,下面的文章是自己觉得一些有用的东西,留下来给自己当笔记,当然也希望能帮助到你,首先感谢你的阅读 ...

  6. 【Java 多线程】Java中主线程如何捕获子线程抛出的异常

    首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下: public void run(); 而所有的具 ...

  7. 第7集 构造函数中抛出的异常

    上一篇文章简单讨论了一下对象的成员函数抛出异常时的处理情况.本文中将继续讨论当在构造函数中抛出异常时,程序的执行情况又如何?这有点复杂呀!而且主人公阿愚还觉得这蛮有点意思! 构造函数中抛出的异常 1. ...

  8. 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )

    文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任意类型对象 V 自定义异常 VI 异常相关代码 I 异常处理 1. 异常处理 : 使用 " try{}catch(){ ...

  9. [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开...

    一.程序错误 编译错误,即语法错误.程序就无法被生成运行代码. 运行时错误 不可预料的逻辑错误 可以预料的运行异常 例如: 动态分配空间时可能不会成功 打开文件可能会失败 除法运算时分母可能为0 整数 ...

最新文章

  1. 1070 Mooncake
  2. MVC实现简单的上传功能
  3. BZOJ2428[HAOI2006]均分数据——模拟退火
  4. 【安全漏洞】Struts2漏洞集合总结
  5. 机器人学习--有参考意义的视频
  6. c语言单片机4*4键盘程序,求51单片机矩阵4*4键盘程序,P0口接一个数码管,P3口接矩阵键盘,C语言的...
  7. Python 查看服务器磁盘信息
  8. CODEVS——T1519 过路费
  9. 经常被问到的十个 Java 面试题?你Get了吗?
  10. 欧框语言框架标准C2,CEFR欧洲语言共同参考框架
  11. (转) 淘淘商城系列——redis-desktop-manager的使用
  12. linux下赋予普通用户管理员权限
  13. 面象对象的系统设计之一
  14. 为什么相机模型假设成像平面位于焦平面?
  15. 一意孤行亚马逊----一个钓鱼疯子的巴西亚马逊之行( 11.9月 27日 最惨的一天 ) 作者:咸水鱼...
  16. 液压比例阀放大器比例控制器比例阀放大板
  17. 单片机/树莓派扩展双串口(TTL和RS485)
  18. 1到n中减少了一个数,顺序被打乱,找出缺失的数
  19. 51单片机的GPS公交车自动报站系统设计
  20. 《Istio官方文档》设计理念

热门文章

  1. poj 3920(简单dp)
  2. LeetCode第一刷--leetcode提交格式介绍与273. Integer to English Words
  3. Caffe中Interp层的使用
  4. 数据库自增主键可能产生的问题
  5. C程序中常见的内存操作错误
  6. 横向经济联合的理论认识
  7. 手机web——自适应网页设计(html/css控制) - 51CTO.COM
  8. Python读入CIFAR-10数据库
  9. shell脚本的两种执行方式区别举例
  10. 简单易学的机器学习算法——神经网络之BP神经网络