throws-try...catch.docx_第1页
throws-try...catch.docx_第2页
throws-try...catch.docx_第3页
throws-try...catch.docx_第4页
throws-try...catch.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

异常注册登陆异常1)什么是异常?异常是行为(方法、过程)中的意外结果2)一个方法如果抛出来异常,这个方法就是必须声明异常的抛出3)异常的声明:在方法上声明的意外结果如:User regist(String email,String pwd)throws UserExistException4)异常类继承的是Exception (代码集的可操作异常)人为的可以处理5)抛出异常的方法有两种,但不论哪一种,都需要对异常进行处理a、直接抛出异常 throws。Exceptionb、trycatth(.Exception e)e.print.6)处理异常的方式依赖于业务的逻辑,可灵活处理7)如果代码在执行过程中出现了异常,异常之后的代码将不在执行New一个集合hashmap,声明id,创建两个异常用户已存在类,密码错误用户不存在类,在usermanager类下写一个方法集合中是否包含email,抛异常,异常为存在用户。,将类User中的id+,email,sqw,传入newuser,集合放入key,value返回newuser,创建方法,在写一个方法集合中不包含用户email,抛异常声明不存在将集合中的email传入user,将数据传入put方法,判断是否密码正确,抛异常输出密码错误,返回账户user。public class UserManager 1声明一个map集合,用于存储Uses用户对象,key是用户的email,value可以是User对象private Mapusers=new HashMap();private int id=1;id起始值为1/* * 声明方法:该方法根据email和pwd注册对象 * 如果成功,则返回注册的对象 * 如果email重复就抛出异常,表示已经注册过 * */ 创建一个方法“注册” public User返回User regist方法名注册(String email,String pwd)throws UserExistException/异常的声明if(users.containsKey(email)该用户是否包含KEY值映射的email/抛出异常的声明throw new UserExistException(该用户已存在,为:+email);throw是在方法处理时使用,throws是在方法前使用new了UserExistException这是个对象,就是调用了他的无参构造器,他的有参构造器把无参覆盖了,写有参,if(users.containsKey(email)成立写已存在输出该用户已存在,为:+email)如果没有包含就是新注册的,要新注册一个new一个新的用户,id+就是起始值加一,然后将users用户放入集合中,email和newUser,返回newuserUser newUser=new User(id+,email,pwd);users.put(email,newUser);return newUser;/登录方法:用户或用户名错误时抛出异常public User login(String email,String pwd) throws EmailOrPwdExceptionif(!users.containsKey(email)users不包含此用户email就代表没有这个用户throw new EmailOrPwdException(查无此用户!);User user=users.get(email);将users中的key值传入给user并输出email中的pwd密码如果user用户密码与注册时密码不同则报异常,否者输出if(!user.pwd.equals(pwd)throw new EmailOrPwdException(密码不对);return user;/该类表示“用户注册过的异常”,一定继承于Exception类/用于表示“注册时可能已经注册过的异常”class UserExistException extends Exceptionpublic UserExistException(String message)super(message);将错误信息给Exception/该类表示“用户名或密码错误异常”,一定要继承于Exception类/用于表示“登陆时,用户名或密码输入错误异常”class EmailOrPwdException extends Exceptionpublic EmailOrPwdException(String message)super(message); 将错误信息给Exception异常类测试public static void main(Stringargs)throws ExceptionUserManager mgr=new UserManager();上一个类的名字我们要调用实例他User user=mgr.regist(, 1234);将上一个类用户管理中的方法调用并赋值key和value这时会报错,因为我们在UserManager类的regist方法中抛异常throws,谁调用regist方法就把异常给谁,我们要接着抛异常就在写一个抛异常throws Exception,System.out.println(user+注册成功);/1、重复注册。出现异常就抛出/User user2=mgr.regist(, 123);/System.out.println(user2+注册成功);/测试2、登陆密码错误,出现异常/User someOne=/mgr.login(abcdsina, 1234);/System.out.println(someOne);/测试三、登陆过程为空/测试4、登陆成功User someOne=mgr.login(abcsina, 1234);System.out.println(someOne);捕获异常1)try时尝试运行中的程序,如果中的程序有异常, 此时会被后面的catch捕获。异常发生之后代码块不在执行 2)catch 代码块 时异常处理代码,需要提供合理的处理业务。 a异常的处理是与具体业务逻辑有关 b可以写多个catch处理一些列的异常,但是要注意异常的大小关系,大异常放后面。 3)fianlly代码块不论程序是否发生异常,都会执行finally a、fianlly经常用来处理现场清理 比如:可靠地数据库连接关闭 4)处理异常有一个基本原则。能够底层处理的异常尽量的取处理,但是如果不能处理,必须要 抛出给调用者(方法)而不应该直接抛弃。 5)建议在捕获到异常的时候,使用 e.printStackTrace();把异常打印到控制台 public static void main(String args) Scanner scanner=new Scanner(System.in);UserManager mgr=new UserManager();while(true)try因为我们要调用regist和login,所以就要抛异常,就要用try和catch。While里面所有东西都让try包裹然后捕获,第一个捕获应该是用户已存在异常(UserExistException e)System.out.println(1.注册,2.登录);String message=scanner.nextLine();if(1.equals(message)如果输入的是1就注册然后就注册/注册System.out.println(请输入用户名(email):);String email=scanner.nextLine();System.out.println(请输入密码:);String pwd=scanner.nextLine();User u=mgr.regist(email, pwd);调用regist方法System.out.println(注册成功:+u);else if(2.equals(message) 如果输入的是2就登陆/登录System.out.println(用户名);String email=scanner.nextLine();System.out.println(密码);String pwd=scanner.nextLine();User u=mgr.login(email, pwd);login 登录方法:用户或用户名错误时抛出异常System.out.println(u);catch(UserExistException e)捕获用户异常e.printStackTrace();catch(EmailOrPwdException e) 捕获登陆异常e.printStackTrace();public static void main(String args) UserManager mgr=new UserManager();try User user=mgr.regist(, 1234);调用registSystem.out.println(注册成功!);User user2=mgr.regist(abcsina.c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论