a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 128|回复: 0

[红帽认证] 谈自定义Exception进行错误处理

[复制链接]
发表于 2012-8-4 12:19:50 | 显示全部楼层 |阅读模式
身份验证时,我们常常要返回一个User对象,然而又要知道到底是什么地方错误。我们可以用Exception进行控制!下面是我写的一个例子,你可以加上数据库连接! $ j- N7 j3 M% V( A$ J2 d: x; A
public class Login{
+ T. x& _' z5 `    public User validate(String userName,String password) throws InvalidNameException,WrongPasswordException{ 1 P  h# r/ e2 m3 {/ c9 x+ f  L7 y
        if(userName.equals("java")){ 3 N) F, F5 E- ]" I5 V: i% u8 y
            if(password.equals("java")){
% W9 B6 U9 B9 E                return new User(userName);   S7 Y0 D3 j, B# i# Y1 a
            }else{
. q6 a. X- D: ?0 c; U                throw new WrongPasswordException();
; P. H+ {" ?# w$ z  n            }
# w1 ^8 O! K( g% k9 x: L. k" C        }else{ 4 a, b2 W2 c" }3 [$ a! k1 z
            throw new InvalidNameException();         3 [; f! j8 O( Q* E9 Q# i4 n
        }
0 l3 g: p) Z* m% Z' o* m* F3 t        //return null;
  Z6 t. W5 A" m# J( p3 L% S  ]    }
/ Y& ^" o1 c, S
/ F& I' ?  U1 v9 t' A% z# J    public static void main(String[] args){
0 I4 M- Q3 a, g- [2 z      Login l=new Login(); , M+ `% l" Q; S/ n9 B
        User user=null;
6 @$ _6 ^' r* Z: U6 @8 O& r        try{ 4 b% `% c0 I- K! y  }, n
            user=l.validate("javac","java");
; J8 ]; L4 r6 z: E& ^7 y, O        }catch(InvalidNameException invalidName){
- L  C% H- E$ W6 L8 q1 u4 L% x: y            System.out.println("The username is invalid!");
) q+ s3 V! s6 Q; u/ l        }catch(WrongPasswordException wrongPassword){
% u' q# p/ }6 S) k% m            System.out.println("The password is wrong"); " A1 A; K; `1 V, U
        } $ m; A; p3 Q5 z: v7 ]5 {& r
        if(!(user==null)){
8 e- e9 r) z- U: a            System.out.println(user.getUserName()); $ K& K  \  ^" e
        }
" R, H: V' s8 Y5 @& r    }
! T  @; l, Z  b0 p, D}
: z6 {' L( [, V- A2 jclass User{
% o0 ~# `. T0 q8 [    private String userName;
8 p6 G- J7 t' [    public User(String userName){   ^1 S3 Z: j5 G) W
        this.userName=userName; / @6 z9 a8 H1 F9 `3 R5 ?: q+ w
    } ' I1 a/ t; r2 d* P
    public void setUserName(String userName){ 2 ~) Y2 ]: [; N5 L/ B  h' T
        this.userName=userName;
' q, Z8 E5 g5 H. ?    }
- T- a8 I( l  U8 \- U5 h. Q    public String getUserName(){ . j/ r- q% Y3 E7 s$ A
        return userName;
& x# }! p1 Z8 V    }
+ f, X' e! u$ y! l$ `}
4 w! R2 P) q# S; pclass InvalidNameException extends Exception{
4 O8 X$ x6 |9 d3 y6 t    public InvalidNameException(){
- ]( b) u9 I  p; ^' f, x7 }    }
8 d0 a3 h$ z% e  t/ g- I6 J}
5 A7 R/ {# q+ [class WrongPasswordException extends Exception{
0 i0 k2 h! Y: x& y4 F; n" W    public WrongPasswordException(){
1 u) n- W% @9 C( K& G    } - e& A/ y1 B* ~& X9 f$ B* i  k
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 05:13 , Processed in 0.233823 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表