Java 您所在的位置:网站首页 java处理机制 Java

Java

2024-07-04 19:41| 来源: 网络整理| 查看: 265

实验2:异常处理 1. 所使用的工具软件及环境

        环境:Windows 8.1;jdk 1.8;

        工具:IntelliJ IDEA

2. 实验目的

        学习异常处理

3. 实验内容

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

        实验要求:①面向对象编程 ②异常定义、抛出、捕捉三个流程。

4. 源程序 //自定义异常 public class ValueException extends Exception{ public ValueException() { super("密码格式错误"); } } public class LenException extends Exception{ public LenException() { super("密码长度错误"); } } //使用自定义异常 public class TryException { public static void ThrowLen(String password) throws LenException { if (password.length() > 6 || password.length() < 4) { throw new LenException(); } } public static void ThrowValue(String password) throws ValueException { for(int i = 0 ;i < password.length();i++){ if(!Character.isDigit(password.charAt(i))){ throw new ValueException(); } } } } //捕获自定义异常、图形化界面 import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CatchException { private JPanel Exception; private JLabel userLabel; private JTextField userField; private JLabel passwordLabel; private JTextField passwordField; private JButton confirmButton; public static void main(String[] args) { JFrame frame = new JFrame("Exception"); frame.setContentPane(new CatchException().Exception); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public CatchException() { confirmButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String User = CatchException.this.userField.getText().trim(); String pas = CatchException.this.passwordField.getText().trim(); try { TryException.ThrowLen(pas); TryException.ThrowValue(pas); } catch (LenException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "密码长度错误!只能输入4-6个数字!", "提示", JOptionPane.ERROR_MESSAGE); }catch (ValueException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "密码格式错误!只能输入4-6个数字!", "提示", JOptionPane.ERROR_MESSAGE); } judge(User, pas); } }); } private void judge(String user, String password){ String MUser = "rql"; String MPassword = "66666"; if (user.equals(MUser) && password.equals(MPassword)){ JOptionPane.showMessageDialog(null, "登录成功!", "成功", JOptionPane.INFORMATION_MESSAGE); } } } 5. 实验结果

① 密码长度错误

② 密码格式错误

③ 登陆成功

6. 体会

    通过本次实验,我学习了Java的异常处理。由于在之前的C++中接触过,所以上手的比较快。异常处理不仅可以简化代码,而且可以增强代码的安全性,值得我们学习。

        异常处理的基本方法遵循:自定义异常、抛出异常和捕获异常。首先,我们需要创建一个异常对象。然后,当正在执行的路径被终止时,需要从当前环境中弹出对异常对象的引用。此时,异常处理机制接管程序,并开始寻找一个恰当的地方继续执行程序。在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(异常处理器所能处理的异常类型与方法抛出的异常类型相符)。运行时系统从发生异常的方法开始,依次回查,调用栈中的方法,直至找到含有合适异常处理器的方法并执行。

        于此,我对异常处理机制有了更深的理解,对try-catch模块的代码有了更深的认识。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有