用戶自定義一個異常,編程創建并拋出某個異常類的實例。運行該程序并觀察執行結果。
例:用戶密碼的合法化驗證。
要求密碼有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() {}}
}
總結
以上是生活随笔為你收集整理的用户自定义一个异常,编程创建并抛出某个异常类的实例。运行该程序并观察执行结果。的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。