<๊ฐ์>
์์ธ๋ฅผ ํญ์ throw new Exception(" ์์ธ ๋ฐ์ ์ ํ๊ณ ์ถ์ ๋ง"); ๋ก ํ๋ค๋ฉด, ๋ง์ง๋ง catch ๊ตฌ๋ฌธ์์ ํ ์ผ์ด ๋๋ฌด ๋ง๋ค.
Exception์ด๋ ํน์ ์ ์ด์ง ์๊ณ ๋ชจ๋ ๊ฑธ ํฌ๊ดํ๋ ์์ธ์ ๋์ก๊ธฐ ๋๋ฌธ์, ()์์ ๋ง์ด ์๋๋ฉด ๋ฌด์จ ์ด์ ๋์ ์์ธ๊ฐ ์ผ์ด๋ฌ๋์ง ์๊ธฐ๋ ์ฝ์ง ์๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ง์ ํน์ ์๊ฐ์๋ง ์๋ํ๋ ์์ธ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ธ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ค๊ณ ํ๋ค.
public class _06_CustomException {
public static void main(String[] args) {
// ์ฌ์ฉ์ ์ ์ ์์ธ
int age = 17;
try {
if(age < 19){
// System.out.println("๋ง 19์ธ ๋ฏธ๋ง์๊ฒ๋ ํ๋งคํ์ง ์์ต๋๋ค. ");
throw new AgeLessThan19Exception("๋ง 19์ธ ๋ฏธ๋ง์๊ฒ๋ ํ๋งคํ์ง ์์ต๋๋ค.");
} else {
System.out.println("์ฃผ๋ฌธํ์ ์ํ ์ฌ๊ธฐ ์์ต๋๋ค.");
}
}catch (AgeLessThan19Exception e) {
System.out.println("์กฐ๊ธ ๋ ์ฑ์ฅํ ๋ค์ ์ค์ธ์.");
} catch (Exception e){
System.out.println("๋ชจ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.");
}
}
}
class AgeLessThan19Exception extends Exception {
public AgeLessThan19Exception(String message) {
super(message);
}
}
ํด๋น ์์ ๋ 19์ธ ๋ฏธ๋ง์ด ์ค๋ฉด ์์ธ๋ฅผ ๋์ง๋ ๊ตฌ๋ฌธ์ด๋ค. AgeLessThan19Exception์ด๋ ์์ธ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํด๋น ์์ธ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
๊ทธ๋ฆฌ๊ณ AgeLessThan19Exception์ด ๋์์ ๋ ์๋ํ๋ catch ๊ตฌ๋ฌธ์ ๋ฐ๋ก ๋ฌ์ ํด๋น ์์ธ ์ํฉ ๋ฐ์ ์ ํด์ผํ ํ๋์ ๊ทธ๋ฅ Exception๊ณผ ๊ตฌ๋ถํ๋ค.
์ด๋ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ ์ฝ๋๋ฅผ ๋ด๋ ๊ฐ๋ ์ฑ์ด ์ข๊ณ , ๊ด์ฌ์ฌ๋ฅผ ๋ค ๋ถ๋ฆฌ ์์ผฐ๊ธฐ์ ์ฝ๋ ํ์ฅ ์ ํธํ๋ค.
** ์ค์ค๋ก ํด๋ณด๊ธฐ
package WorkOut_Myself;
public class CustomException_myself {
public static void main(String[] args) {
String name = "๊นํ๋";
try {
if(name.contains("๊น")){
throw new NokimException("๊น์จ ์ธ๊ฐ์?");
}
else {
System.out.println(" ๋ค์ด๊ฐ์ธ์.");
}
} catch (NokimException e) {
e.printStackTrace();
System.out.println("๊น์จ๋ ์ถ์
๊ธ์ง ์
๋๋ค!!");
}
catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("์์น ์์");
}
}
}
class NokimException extends Exception {
public NokimException(String message) {
super(message);
}
}