๐์์ธ๋ฉ์์ง ์ถ๋ ฅ
- System.err.println(); ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ธ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
1. ๊ฐ๋จํ ์์ธ ๋ฉ์์ง .
์ฌ์ฉ๋ฒ)
String msg = ์์ธ์ฒ๋ฆฌ๊ฐ์ฒด๋ช
.getMessage();
2. ์์ธ๋ฐ์ํด๋์ค๋ช ๊ณผ ๋ฉ์์ง.
์ฌ์ฉ๋ฒ)
String msg = ์์ธ์ฒ๋ฆฌ๊ฐ์ฒด๋ช
.toString();
3. ์์ธํ ์์ธ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅ.
์ฌ์ฉ๋ฒ)
์์ธ์ฒ๋ฆฌ๊ฐ์ฒด๋ช
.printStackTrace(); //์ถ๋ ฅ๊น์ง ํจ๊ป ์ํ.
๐งธ์์ธ๋ฉ์์ง ์ถ๋ ฅ ์์ )
package day0725;
import javax.swing.JOptionPane;
/**
* RuntimeException : ์ฝ๋์์ฑ ์ ๋ฐ์๋๋ ์์ธ๋ฅผ JVM์ด ์๋์ผ๋ก try~catch ์ฒ๋ฆฌํ์ฌ ์์ธ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ์์ธ.
* ( ์ฝ๋ ์์ฑ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ๋์น๊ธฐ ์ฝ๋ค. )
*
* @author user
*
*/
public class UseRuntimeException {
// ์ซ์ ๋๊ฐ ์
๋ ฅ ๋ฐ์์ ๋๋ ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ์ผ
public UseRuntimeException() {
String stringNum1 = JOptionPane.showInputDialog("์ซ์ ์
๋ ฅ");
String stringNum2 = JOptionPane.showInputDialog("๋๋ ์ซ์ ์
๋ ฅ");
int intNum1 = 0;
int intNum2 = 0;
int intResult = 0;
try { // catch๋ ์๊ธฐ๋ ๊ด๋ จ์ด ์๋๊ฒ ์๋๋ฉด ์์ก์
intNum1 = Integer.parseInt(stringNum1);
intNum2 = Integer.parseInt(stringNum2);
intResult = intNum1 / intNum2; // ์์ธ๋ฐ์ ์์ ์ฝ๋ 1.์์ธ๋ฐ์
// ์ ์์คํ๋์์ ๋ ์ ๊ณตํ ์ฝ๋ : ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ์คํ๋์ง ์๋๋ค.
System.out.printf(" %d / %d = %d ", intNum1, intNum2 ); // inReseult ์ ์ ๋บ
} catch (ArithmeticException ae) { // (์์ธ ์ถ๋ ฅ ๋๋ฌธ์ )
// 2.์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ฝ๋์ด๋ค.
System.err.println("0์ผ๋ก ๋๋ ์ ์์ด");
} catch (NumberFormatException nfe) { // ๊ด๋ จ์๋ catch๋ฌธ ์ถ๊ฐํด์ผํจ
System.err.println("์ซ์๋ก ๋ณํํ ์ ์๋ ๋ฌธ์์ด์ด ์
๋ ฅ๋์์ต๋๋ค.");
} catch (Exception e) {
System.out.println("์์์ด ๋์น ์์ธ๋ฅผ ์ก๊ธฐ ์ํ ๋ถ๋ชจ ์์ธ");
System.out.println("๊ฐ๋จํ ๋ฉ์์ง" + e.getMessage()); // ์์ธ๊ฐ ๋ฐ์ํ ์ค์ ์ ์ ์๋ค.
System.out.println("์์ธ๊ฐ์ฒด๋ช
๊ณผ ๊ฐ๋จํ ๋ฉ์์ง" + e); // ์์ธ๊ฐ ๋ฐ์ํ ์ค์ ์ ์ ์๋ค.
e.printStackTrace(); // ์์ธํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
} finally {
// ๋ฐ๋์ ์คํ๋์ด์ผํ ์ฝ๋
System.out.println("\n์ฌ์ฉํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค");
} // end finally
}// UseRuntimeException
public static void main(String[] args) {
new UseRuntimeException();
}// main
}// class
๊ฒฐ๊ณผ )