$BFH<+Nc30%/%i%9$N:n@.(B

Revised: Mar./21st/2002: Since: Jan./27th/2002

$BE,Ev$JNc30%/%i%9$r7Q>5$7$F!"FH<+Dj5A$NNc30%/%i%9$r:n$k$3$H$b=PMh$^$9!#Nc30%/%i%9$O(B java.lang.Throwable $B$N%5%V%/%i%9$G$"$j!"(B throw $B$G$-$^$9$7!"%a%=%C%I$N(B throws $B%j%9%H$K2C$($k$3$H$b=PMh$^$9!#$^$?!"%9!<%Q!<%/%i%9$KA*$s$@Nc30%/%i%9$K$h$C$F$O!"$=$N%/%i%9$GDj5A$7$5$l$?FC

$B$3$N$H$-!"(B RuntimeException $B$r7Q>5$9$l$P!"(B catch $B$7$?$j!"%a%=%C%I$N(B throws $B%j%9%H$K;XDj$9$kI,MW$O$J$/$J$j$^$9!#$7$+$7!"L@<(E*$JNc30$N%9%m!<$O!"La$jCM$d0z?t$HF1MM$J%a%=%C%I$N%$%s%?%U%'!<%9$N0lIt$@$+$i$3$=M-0U5A$J$N$@$H8@$($^$9!#DL>o$O(B Exception $B%/%i%9$+$i7Q>5$7$F!">e0L$N@)8f$G%-%c%C%A$7$^$9!#(B

$B%5%s%W%k(B

$B6qBNE*$JNc$r:n$C$F$+$i!"$=$l$K9g$o$;$FNc30%/%i%9$rDj5A$7$F$_$^$9!#(B

$B$NG[Ns$rJ];}$9$k%/%i%9$G$9!#%$%s%9%?%s%92=$N$H$-$K%3%s%9%H%i%/%?$K%f!<%6L>$NG[Ns$rM?$($^$9!#FCDj$N%f!<%6$rI=$9MWAG$N%$%s%G%C%/%9$r!"Ev3:%f!<%6$N(B ID $B$H$7$F!"(B ID $B$+$i%f!<%6L>$r!"%f!<%6L>$+$i(B ID $B$rF@$k$3$H$,=PMh$^$9!#(B

class UserList {
	private String[] users;
	// $B%f!<%6$NG[Ns$rBeF~(B
	void setUsers(String[] args) {
		// $BG[Ns$N;2>H$NCM$NBeF~(B
		users=args;
	}
	// UID $B$+$i%f!<%6L>$r$+$i(B UID $B$r

$B$3$N%/%i%9$OJ8;zNs7?$NG[Ns$rJ];}$7!"%a%=%C%I$K$O$=$N%2%C%?!<(B (getXyz()) $B$H%;%C%?!<(B (setXyz()) $B$,Dj5A$5$l$F$$$^$9!#$3$N%/%i%9$r;H$&%3%s%H%m!<%k%/%i%9$r

UserTest.java:

class UserTest {
	public static void main(String[] args) {
		// $B%$%s%9%?%s%92=(B
		UserList obj = new UserList();
		// $B%f!<%6G[Ns$N%;%C%H(B
		obj.setUsers(args);
		System.out.print("sugai -> ");
		System.out.println(obj.getUser("sugai"));
		System.out.print("0 -> ");
		System.out.println(obj.getUser(0));
	}
}

$B>e$G5s$2$?(B UserList $B%/%i%9$O$3$N%/%i%9$HF1$8%U%!%$%k$K5-=R$7$F$b9=$$$^$;$s$7!"J,$1$F$b9=$$$^$;$s!#C"$7!"F1$8%G%#%l%/%H%j$KB8:_$7$F$$$k$3$H$,I,MW$G$9!#%U%!%$%k$KJ]B8$G$-$?$i

$B

C:\Java\Excep>javac UserTest.java
C:\Java\Excep>java UserTest root team01 team02 sugai system admin
sugai -> 3
0 -> root

$B%5%s%W%k(B

$BNc30%/%i%9$NDj5A(B

$B$3$3$GDj5A$7$?(B UserList $B%/%i%9$K$O%W%j%_%F%#%V$JLdBj$,;68+$5$l$^$9!#(B

  1. $B%f!<%6$,8+IU$+$i$J$1$l$P%G%U%)%k%HCM(B "0" $B$rJV$7$F$$$k$N$OMpK=(B
  2. "uid" $B$NE,@5CM$,%"%5%$%s$5$l$J$$>l9g$N=hM}$,$J$$(B
  3. $B%f!<%6%j%9%H$,B8:_$7$J$$>l9g$,9MN8$5$l$F$$$J$$(B

$B$3$N$h$&$JLdBj$r2r7h$9$k0Y$K!"$3$3$G$OFH<+$NNc30%/%i%9$rDj5A$7$F$_$^$9!#(B

UserNotAuthorizedException
$B%f!<%6$,8+IU$+$i$J$$>l9g$KH/@8(B
UidOutOfBoundException
$B;XDj$5$l$?(B UID $B$,E,@Z$JHO0OFb$G$O$J$$>l9g$KH/@8(B
NullUsersException
$B%f!<%6$,%;%C%H$5$l$kA0$K%f!<%6$,MW5a$5$l$?>l9g$KH/@8(B

$B$3$N$h$&$K!"FH<+$NDj5A$GNc30$r:n$k>l9g$O!"KvHx$r(B Exception $B$K$9$k$N$,L?L>47Nc(B (naming convention) $B$G$9!#(B

$B$3$l$i$NNc30%/%i%9$r$3$l$+$i:n$j$^$9$,!"%9!<%Q!<%/%i%9(B UsersException $B$r:n$C$F!"$=$l$+$iGI@8$5$;$k$3$H$K$7$^$9!#$3$NNc30%/%i%9$O(B Exception $B%/%i%9$NGI@8$H$7$F:n$j$^$9!#(B

// UserList $B%/%i%9$,H/@8$9$kNc30$N%9!<%Q!<%/%i%9(B
class UsersException extends Exception {
	public UsersException(String str) {
		super(str);
	}
}
class UserNotAuthorizedException extends UsersException {
	// UID
	private int id;
	// $B%f!<%6L>(B
	private String name;
	// $B%3%s%9%H%i%/%?(B
	public UserNotAuthorizedException() {
		super("$B$3$N%f!<%6$OG'>Z$5$l$^$;$s!#(B");
	}
	public void setUid(int i) {
		id = i;
	}
	public void setName(String user) {
		name = user;
	}
	public String getName() {
		return name;
	}
	public int getId() {
		return id;
	}
}
class UidOutOfBoundException extends UsersException {
	// UID $B$N>e8B(B
	private int hid;
	// $B%3%s%9%H%i%/%?!J0z?t$O(B UID $B$N>e8B!K(B
	public UidOutOfBoundException(int i) {
		super("UID $B$NHO0O$O(B" + 0 + "$B$+$i(B" + i + "$B$G$9!#(B");
		hid = i;
	}
	public int getHid() {
		return hid;
	}
}
class NullUsersException extends UsersException {
	// $B%3%s%9%H%i%/%?(B
	NullUsersException() {
		super("$B%f!<%6$,Dj5A$5$l$F$$$^$;$s!#(B");
	}
}

$B$3$l$i$NNc30%/%i%9$r%3%s%Q%$%k$7$F%P%$%H%3!<%I!J(B*.class $B%U%!%$%k!K$rMQ0U$7$F$*$-$^$9!#(B

C:\Java\Excep>javac UsersException.java
C:\Java\Excep>

$BNc30%/%i%9$NMxMQ(B

$B$G$O!"=`Hw$,@0$$$^$7$?$N$G!"(B UserList $B%/%i%9$r$3$l$i$NNc30$r(B throw $B$9$k$h$&$KJT=8$7$^$9!#(B

UserList.java:

class UserList {
	private String[] users;
	void setUsers(String[] args) {
		// $BG[Ns$N;2>H$NCM$NBeF~(B
		users = args;
	}
	String[] getUsers() throws NullUsersException {
		if (users.equals(null)) {
			throw new NullUsersException();
		}
		return users;
	}
	String getUser(int uid) throws UsersException {
		if (users.equals(null)) {
			throw new NullUsersException();
		} else if (uid < 0 || uid >= users.length) {
			UidOutOfBoundException excep
			    = new UidOutOfBoundException(users.length - 1);
			throw excep;
		}
		return users[uid];
	}
	int getUser(String user) throws UsersException {
		int uid = 0;
		if (users.length == 0) {
			throw new NullUsersException();
		} else {
			for (int i = 0; i < users.length; i++) {
				if (user.equals(users[i])) {
					uid = i;
					break;
				} else if (i == users.length - 1) {
					UserNotAuthorizedException excep
					    = new UserNotAuthorizedException();
					excep.setName(user);
					throw excep;
				}
			}
		}
		return uid;
	}
}

UsersList $B%/%i%9$N(B private $B$G$O$J$$%$%s%?%U%'!<%9ItJ,$rJT=8$7$?$N$G!"$3$N%/%i%9$r%$%s%9%?%s%92=$9$k%3%s%H%m!<%k%/%i%9$NJ}$bJT=8$7$^$9!#(B

class UserTest {
	public static void main(String[] args) {
		UserList obj = new UserList();
		obj.setUsers(args);
		try {
			System.out.print("sugai -> ");
			System.out.println(obj.getUser("sugai"));
			System.out.print("10 -> ");
			System.out.println(obj.getUser(10));
		} catch (UsersException e) {
			System.out.println("");
			System.out.println(e);
			return;
		}
	}
}

$B%3%s%Q%$%k$7$F$NG[Ns$K$J$j$^$9!#0z?t$rM?$($J$$$Gl9g$O!"%f!<%6$,Dj5A$5$l$F$$$J$$$N$G!"Nc30(B NullUsersException $B$,H/@8$9$k$O$:$G$9!#(B

C:\Java\Excep>javac UserTest.java
C:\Java\Excep>java UserTest
sugai ->
NullUsersException: $B%f!<%6$,Dj5A$5$l$F$$$^$;$s!#(B
C:\Java\Excep>

$B0z?t$rM?$($F$b!"BP1~$9$k%f!<%6$,B8:_$7$J$1$l$P(B UserNotAuthorizedException $B$,H/@8$9$k$O$:$G$9!#(B

C:\Java\Excep>java UserTest root team01 team02
sugai ->
UserNotAuthorizedException: $B$3$N%f!<%6$OG'>Z$5$l$^$;$s!#(B
C:\Java\Excep>

$B$5$i$K!"G[Ns$N%$%s%G%C%/%9$r(B UID $B$H$7$F%f!<%6L>$r%2%C%H$G$-$k$O$:$G$9$,!"(B UID $B$,G[Ns$NMWAG?t$rD6$($?$j!"Ii?t$@$C$?$j$9$l$P!"(B UidOutOfBoundException $B$,H/@8$9$k$O$:$G$9!#(B

C:\Java\Excep>java UserTest root team01 team02 sugai
sugai -> 3
10 ->
UidOutOfBoundException: UID $B$NHO0O$O(B0$B$+$i(B3$B$G$9!#(B
C:\Java\Excep>


Copyright © 2001 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送