a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 269|回复: 0

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

[复制链接]
发表于 2012-8-4 12:19:50 | 显示全部楼层 |阅读模式
身份验证时,我们常常要返回一个User对象,然而又要知道到底是什么地方错误。我们可以用Exception进行控制!下面是我写的一个例子,你可以加上数据库连接!
* r* S5 l9 Y/ _2 U- u1 q/ F: }0 spublic class Login{
5 O6 C( B: V# z, [$ I/ E. @    public User validate(String userName,String password) throws InvalidNameException,WrongPasswordException{ / M8 ~" x9 b- n3 |0 s: z3 a  S0 }
        if(userName.equals("java")){ ; I5 J* b* }+ T. ]; w
            if(password.equals("java")){ $ {) D; d" H! ?6 D6 b
                return new User(userName); 7 n- o5 ~: ?  C: r' b
            }else{
+ Z, m5 p: C- N$ |0 V! w                throw new WrongPasswordException();
: o" W0 a* G5 L            }
; H' _8 _4 Z( r3 g) x  N9 a        }else{
3 J8 c+ x+ L9 K* z            throw new InvalidNameException();         
) n8 J8 I( N, O9 H" I! c) M1 g        } ; L1 h6 I: W2 d. F4 {
        //return null; 9 p4 g; ~; w1 \! o% v2 N3 ^" A
    }
/ B5 q6 g( S/ P& b: ?" O" D, w) e( c- ^- l9 J( M# {) ?1 H2 t# S3 z2 R  W
    public static void main(String[] args){
, s2 E# o8 q# ?, O# L! s& w2 `% H, w      Login l=new Login(); # x. [9 {5 f; v' u5 C
        User user=null;
: G5 k1 R) J4 E! s6 W" o        try{
/ O/ S5 |5 Q" P+ I, w            user=l.validate("javac","java"); % X& g  Y# u4 S! o3 @" p
        }catch(InvalidNameException invalidName){ . |. B3 t( \  V, b3 X- _8 l# s
            System.out.println("The username is invalid!");
. \7 Y$ [! N& Y5 f) v8 I        }catch(WrongPasswordException wrongPassword){ % Y7 Q  C  U1 j0 O" {
            System.out.println("The password is wrong"); 5 G0 ^$ H1 \/ t# K8 u, M, e4 B$ \
        } ) R  S& A/ U6 U" }
        if(!(user==null)){
5 t/ g2 \: v1 C$ B: ]3 w2 Q            System.out.println(user.getUserName());
% @- G  N7 G8 ^* Y7 K/ F        }
( Y" ]# m% R( x  _4 m/ z4 n    }
' D3 X- H7 C2 l; V} & x, h+ d6 [5 ?' k  U- V% z2 B
class User{ ( O4 |4 Y$ V: X/ v8 y* h
    private String userName; 6 E- Y0 g% R- |- o& S' I: D3 ^
    public User(String userName){
0 x* A- B) V* X8 t        this.userName=userName; + z8 ~# `( B. J5 O3 a, f- |
    } $ t' ?/ _, {  M& D+ ?  t( S# I; t
    public void setUserName(String userName){
1 w  ~9 p( V  W+ ~4 M% l        this.userName=userName;
, u  T6 G' S. H+ S$ d/ V/ y    } 7 f! g2 m; C1 {! r) ?4 I
    public String getUserName(){ , A3 n2 h% d& M' m! `" g9 w
        return userName; & r' w, ~. f$ d  [# g+ z
    } & L) R: {7 a) A# c9 o, r; u
}
; a+ A' Q0 `/ o5 E( A: M- x8 Mclass InvalidNameException extends Exception{
7 `6 K& Y$ \9 n+ w  a, x    public InvalidNameException(){
' H; A% P* ?; y! K$ I* Q4 A. t! Y    }
% A3 P% \( `9 V9 x( z} & P" C/ B2 \/ S- s1 q4 R
class WrongPasswordException extends Exception{
4 L2 S5 y1 i% U9 N% j    public WrongPasswordException(){
" d& p. I% S4 k2 y) f    } ' T+ |: O: D9 O( v
}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 19:46 , Processed in 0.184295 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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