创建自己的日期错误异常类

要求设计一个程序,该程序让用户输入一个星期中的任意一天的数字1 到7,然后输出该数字所对应的是星期几。但是当用户输入的数字不在 1 到7 范围内时,程序应该给出信息"您输入的不是正确的星期数!1...7"

实验步骤:

(1)分析实验任务,尽管Java 中有ArithmeticException, NumberFormatException 等异常类,但

并没有这里想要的异常类,因此用户必须设计自己的异常类BadDataException 以处理上述情况。

java 复制代码
class BadDataException extends RuntimeException {
public BadDataException() {
super();
} // end constructOr BadDataException
public BadDataException(String message) {
super(message);
} // end constructor BadDataException
} // end class BadDataException

同时还要设计一个主类BadDataDays 以抛出这个例外,该主类包含一个getDayName(int dayNumber)方法以根据输入值返回星期几,在这个方法中应该使用一个switch 语句来判断,并在switch 块的default 语句处Throw 抛出用户的BadDataException 异常。

java 复制代码
import java.awt.*;                // Container, GridLayout

import java.awt.event.*;          // ActionListener

import javax.swing.*;

public class BadDataDays extends JFrame

      implements ActionListener

  {

    private JTextField dayNumberField, dayNameField;

    private int dayNumber;

    private String dayName;  

    public BadDataDays()

    {

      super( "数字转换星期  " ); //代码1   

      Container container = getContentPane();

      container.setLayout( new GridLayout( 2 , 2 ) );    

      container.add(

          new JLabel( "输入数字 ", SwingConstants.RIGHT ) );

       dayNumberField=new JTextField(10);  //代码2    // 创建一个JTextField控件 dayNumberField

      container.add( dayNumberField );

      dayNumberField.addActionListener( this );     

      container.add(new JLabel( "星期几 ", SwingConstants.RIGHT ) );

      dayNameField = new JTextField( 10 );

      container.add(dayNameField); //代码3    // 将控件dayNameField 加入到容器中

      this.setSize(425, 100); //代码4   // 设置窗口的大小为 (425,100)

      setVisible( true );

    }     

    public void actionPerformed( ActionEvent event )

    {

      dayNameField.setText( "" );       

        try

         {

          dayNumber = Integer.parseInt( dayNumberField.getText() );

          dayName = getDayName(dayNumber);

          dayNameField.setText(dayName); //代码5  // 在控件dayNameField中输出结果 

         }

          catch (BadDataException ex)

         {

             JOptionPane.showMessageDialog(

            BadDataDays.this, ex.toString(), "无效日期", JOptionPane.WARNING_MESSAGE );

         }

         catch (NumberFormatException ex)

         {

           System.out.println("I detected Exception " + ex.toString());                               

         }

    } 

    public String getDayName(int dayNumber) throws BadDataException

    {

         //  此处加入switch 语句块以根据输入值dayNumber 判断星期几,

             //     并在default处Throw抛出BadDataException异常

switch(dayNumber) {  //代码6

         case 1:return "星期一";

         case 2:return "星期二";

         case 3:return "星期三";

         case 4:return "星期四";

         case 5:return "星期五";

         case 6:return "星期六";

         case 7:return "星期日";

         default:throw new BadDataException("输入错误!");

         }

    }

    public static void main( String args[] )

    {

      BadDataDays  application = new BadDataDays();

      application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    } 

}
相关推荐
Am心若依旧40927 分钟前
[c++11(二)]Lambda表达式和Function包装器及bind函数
开发语言·c++
明月看潮生29 分钟前
青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试
开发语言·青少年编程·单元测试·编程与数学·goweb
Yan.love36 分钟前
开发场景中Java 集合的最佳选择
java·数据结构·链表
椰椰椰耶39 分钟前
【文档搜索引擎】搜索模块的完整实现
java·搜索引擎
大G哥39 分钟前
java提高正则处理效率
java·开发语言
VBA63371 小时前
VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL
开发语言
轩辰~1 小时前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
小_太_阳1 小时前
Scala_【1】概述
开发语言·后端·scala·intellij-idea
向宇it1 小时前
【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理
开发语言·unity·c#·编辑器·游戏引擎
智慧老师1 小时前
Spring基础分析13-Spring Security框架
java·后端·spring