์ฃผ์๋ฌธ
ํ๋ก๊ทธ๋๋ฐ ์คํ๊ณผ๋ ์๊ด ์๋ ๋ฌธ์ฅ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ค๋ช ์ ๋ถ์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
์๋ฐ์ ์ฃผ์๋ฌธ
์ฃผ์๊ธฐํธ | ์ค๋ช |
// | //๋ถํฐ ์์ํด์ ์ค ๋๊น์ง ์ฃผ์์ฒ๋ฆฌ |
/* ... */ | /*์ */ ์ฌ์ด์ ๋ด์ฉ์ด ๋ชจ๋ ์ฃผ์์ฒ๋ฆฌ |
/** ... */ | /**์ */์ฌ์ด์ ๋ด์ฉ์ด ๋ชจ๋ ์ฃผ์์ฒ๋ฆฌ JavaDoc ์ฃผ์๋ฌธ |
JavaDoc ์ฃผ์๋ฌธ์์ ์ฌ์ฉํ๋ ํ๊ทธ๋ค
annotation | ์ค๋ช |
@version | ํด๋์ค๋ ๋ฉ์๋์ ๋ฒ์ |
@author | ์์ฑ์ |
@deprecated | ๋์ด์ ์ฌ์ฉ๋์ง ์๊ฑฐ๋, ์ญ์ ๋ ์์ |
@since | ์ธ์ ์์ฑ, ์ถ๊ฐ, ์์ ๋์๋๊ฐ? |
@see | ์ธ๋ถ ๋งํฌ๋ ํ ์คํธ, ๋ค๋ฅธ ํ๋๋ ๋ฉ์๋ ๋งํฌ์ ์ฌ์ฉ |
@link | see์ ๋์ผ ๊ธฐ๋ฅ. ๋งํฌ ์ ๊ณต |
@exception | ๋ฐ์ํ ์ ์๋ Exception ์ ์ |
IntelliJ์์ JavaDoc ์์ฑํ๋ ๋ฐฉ๋ฒ
1. shifํค๋ฅผ 2๋ฒ ์ฐ์ ๋๋ฅธ๋ค.
2. generate javaDoc์ ์ ๋ ฅํ๋ค.
3. custom scope๋ฅผ ์ ํํ ํ JavaDoc์ ์์ฑํ ํจํค์ง, ํด๋์ค, ์ธํฐํ์ด์ค ๋ฑ์ ์ ํํ๋ค.
4. output directory์์ JavaDoc์ด ์์ฑํ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ค.
5. other command line arguments์๋ ๋ค์์ ์ ๋ ฅํ๋ค
-encoding UTF-8 -charset UTF-8 -docencoding UTF-8
6. OK ๋ฒํผ์ ํด๋ฆญํ๋ค.
์ฃผ์๋ฌธ์ ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์?
์ฃผ์๋ฌธ์ด ์์ด๋ ์ดํดํ ์ ์๋ ํด๋์ค, ๋ฉ์๋, ๋ณ์๋ฅผ ์์ฑํ๋ค.
์ฃผ์๋ฌธ์ ์ต์๋ก ์์ฑํ๊ณ , javaDoc์ฃผ์๋ฌธ์ ์ ์์ฑํ๋ฉด ๋๋ค.
์์ธ์ฒ๋ฆฌ
Error์ ์ข ๋ฅ
์ปดํ์ผ ์๋ฌ: ์ปดํ์ผ์ ๋ฐ์ํ๋ ์๋ฌ
๋ฐํ์ ์๋ฌ: ์คํ์ ๋ฐ์ํ๋ ์๋ฌ
์๋ฐ์์๋ ์คํ์ 2๊ฐ์ง ํํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
Error: ์์ตํ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ
Exception: ์์ธ ์ฒ๋ฆฌ๋ฅผ ํตํด ์์ตํ ์ ์๋ ๋ ์ฌ๊ฐํ ์ค๋ฅ
๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ, ์คํ์ค๋ฒํ๋ก์ฐ ๋ฑ์ด ๋ฐ์ํ์ฌ ํ๋ก๊ทธ๋จ์ด ์ฃฝ๋ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ์ดํ ์ ์๋ค.
์์ธ์ฒ๋ฆฌ๋?
public class Exception1 {
public static void main(String[] args) {
ExceptionObj1 exobj = new ExceptionObj1();
int value = exobj.divide(10,0);
System.out.println(value);
}
}
class ExceptionObj1{
public int divide(int i, int k ){
int value =0;
value= i/k;
return value;
}
}
0์ผ๋ก ๋๋ ์ ์์ผ๋ฏ๋ก ArithmeticException ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ด๋, ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋ค.
try{
์ฝ๋1
์ฝ๋2
.....
}catch(Exceptionํด๋์ค๋ช
1 ๋ณ์๋ช
1){
Ecception ์ฒ๋ฆฌ ์ฝ๋
}
class ExceptionObj1{
public int divide(int i, int k ){
int value =0;
try {
value = i / k;
}catch(ArithmeticException ex){
System.out.println("0์ผ๋ก ๋๋์ ์๋ค.");
System.out.println(ex.toString());
}
return value;
}
}
์คํ๊ฒฐ๊ณผ
0์ผ๋ก ๋๋์ ์๋ค.
java.lang.ArithmeticException: / by zero
0
์ด๋, 2๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋ค.
์ค์ ๋ก 0์ผ๋ก ๋๋ ์ ์๋๋ฐ, 0์ return ํด์คฌ๋ค. ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ ๊ฒ์ด๋ฏ๋ก ์ด๊ฒ์ ์๋ฌ๋ฐ์ ๋ณด๋ค ๋ชปํ ๊ฒฐ๊ณผ๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ฌ์ฉ์๊ฐ ์ํ์ง ์๋ ๋ฉ์๋๋ฅผ ์ถ๋ ฅํ๊ณ ์๋ค.
"0์ผ๋ก ๋๋์ ์๋ค.
java.lang.ArithmeticException: / by zero"
์ด ๋ ์ค์ ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ์๋ ๊ฒ์ด๋ค.
์์ธ ๋ ๋๊ธฐ๊ธฐ(throws)
๋ฆฌํดํ์
๋ฉ์๋๋ช
(์๊ท๋จผํธ ๋ฆฌ์คํธ) throws Exceptionํด๋์ค๋ช
1, Exceptionํด๋์ค๋ช
2...{
์ฝ๋1
์ฝ๋2
....
}
public class Exception1 {
public static void main(String[] args) {
ExceptionObj1 exobj = new ExceptionObj1();
try {
int value = exobj.divide(10, 0);
System.out.println(value);
}catch (ArithmeticException ex){
System.out.println("0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.");
}
}
}
class ExceptionObj1{
public int divide(int i, int k ) throws ArithmeticException{
int value =0;
value= i/k;
return value;
}
}
์คํ๊ฒฐ๊ณผ
0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
0์ผ๋ก ๋๋ ์ ์๋ค๋ ๊ฒ์ value์ ๊ฐ์ด ๋ค์ด๊ฐ๋ฉด ์๋๋ค๋ ๋ง์ด๋ค.
System.out.println(value); ์ด๋ถ๋ถ์ด ์คํ๋์ง ์์๊ฒ์ด๊ณ , ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ์ชฝ์์ Exception์ฒ๋ฆฌ๋ฅผ ํจ์ผ๋ก์จ
์ ์์ ๋ณด๋ค ๋ฌธ์ ์๋ ์ฝ๋๋ผ๊ณ ํ ์ ์๋ค.
RuntimeException: RuntimeException ํด๋์ค๋ฅผ ์์๋ฐ์ผ๋ฉด ๋ค RuntimeException์ด๋ค. ์์ธ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์๋ ์ปดํ์ผ ๋๋ค.
CheckedException:RuntimeExceptionํด๋์ค๋ฅผ ์์๋ฐ์ง ์๋ ๋๋จธ์ง๋ ๋ค CheckedException์ด๋ค. ๋ฐ๋์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
Tip
Exceptionํด๋์ค๋ฅผ ๋ง๋ ๋ค๋ฉด RuntimeException ํด๋์ค๋ฅผ ์์๋ฐ๋๊ฒ ์ข๋ค. CheckedException์ด ๋ง์์ง๋ฉด ์ฒ๋ฆฌํ ๊ฒ์ด ๋๋ฌด ๋ง์์ง๊ณ , ์ฌ์ฉ์๊ฐ ๋ถํธํ๋ค.
main๋ฉ์๋์ ๋ ๋๊ธฐ๊ธฐ๋ฅผ ํ๋ฉด ์ข ๋ฃ๋๋ค. ์ฆ, ๋ฌด์ฑ ์ํ ํ๋! main๋ฉ์๋์ ๋ ๋๊ธฐ๊ธฐ๋ ์ง์ํ์!
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class Exception4 {
public static void main(String[] args) throws FileNotFoundException{
FileInputStream fis = new FileInputStream("Exception4.java");
}
}
public class Exception6 {
public static void main(String[] args) {
int[] array = {4,2};
int[] value = null;
try{
value[0] = array[0] / array[1];
}catch (ArrayIndexOutOfBoundsException aiob){
System.out.println(aiob.toString());
}catch (ArithmeticException ae){
System.out.println(ae.toString());
}catch (Exception ex){
System.out.println(ex);
}
}
}
์คํ ๊ฒฐ๊ณผ
java.lang.NullPointerException
value๋ ํฌ๊ธฐ 0์ธ ๋ฐฐ์ด์ธ๋ฐ, ์ฌ๊ธฐ์ ๊ฐ์ ๋ฃ์ ์ ์์ผ๋ฏ๋ก NullPointerError๋ฐ์
catch๋ฌธ์ด ์ฌ๋ฌ๊ฐ๊ฐ ์๋๋ฐ, Exception์ ๋ชจ๋ ์์ธ์ฒ๋ฆฌ์ ์ต์์ ์กฐ์์ด๊ธฐ์ ๋ง์ง๋ง catch๋ฌธ์์ ๊ฑธ๋ ค
NullPointerException๋ Exception ex ๋ณ์๊ฐ ๊ฐ๋ฆฌํฌ ์ ์๋ค.(์กฐ์ ํ์ ์ผ๋ก ํ์ ์ธ์คํด์ค ์ฐธ์กฐ๊ฐ๋ฅ)
์ฌ์ฉ์ ์ ์ Exception๊ณผ throw
์ผ๋ฐ ์์ธ๋ก ์ ์ธํ ๊ฒฝ์ฐ Exception์ ์์๋ฐ์ ๊ตฌํ
์คํ ์์ธ๋ก ์ ์ธํ ๊ฒฝ์ฐ์๋ RuntimeException์ ์์๋ฐ์ ๊ตฌํ
public class MyException extends RuntimeException{
//์ค๋ฅ ๋ฉ์์ง๋, ๋ฐ์ํ Exception์ ๊ฐ์ผ ๊ฒฐ๊ณผ๋ก ๋ด๊ฐ ๋ง๋ Exception์ ์ฌ์ฉํ๊ณ ์ถ์ ๋๊ฐ ๋ง๋ค.
public MyException(String message) {
super(message);
}
public MyException(Throwable cause) {
super(cause);
}
}
'๐ผ๋ฐฑ์ค๋ > Java ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java I/O (0) | 2023.08.24 |
---|---|
์ ๋๋ฆญ(Generic)๊ณผ ์ปฌ๋ ์ ํ๋ ์์ํฌ(Collection Framework) (0) | 2023.08.22 |
๋ฐฐ์ด 2/2 (0) | 2023.08.22 |
๋ฐฐ์ด 1/2 (0) | 2023.08.22 |
๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ 3/3 (0) | 2023.08.21 |