身份验证时,我们常常要返回一个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
} |