AVA DAY 20-異常処理
例外処理
エラー
ランタイムエラー
例外
異常処理(try-catch)
int result = 10 / 0; //정수를 0으로 나눌 수 없다.(실수의 경우 가능)
System.out.print(result);
例外処理try{
int result = 10 / 0; //정수를 0으로 나눌 수 없다. (실수의 경우 가능)
System.out.println(result);
}catch(ArithmeticException | IndexOutOfBoundsException e){
e.printStackTrace(); //에러 메시지를 출력한다.
}catch(NullPointerException e){
}catch(Exception e){
//모든 예외 처리
}
//파라미터가 여러개일 경우 , 가 아닌 |로 구분한다
87*∗コンソールウィンドウコンパイルエラーの原因を確認
典型的な例外
//IndexOutOfBoundsException -> 배열의 인덱스를 벗어났다.
int[] arr = new int[5];
System.out.println(arr[5]);
//NullPointerException -> null에서 참조했다.
String str = null;
System.out.println(str.charAt(1));
∗*∗ CallStack| test2 |
| test1 |
| main |
finally
public static void main(String[] args) {
FileInputStream fis null;
fis = new FileInputStream("d:file.txt"); // 컴파일 에러
//컴파일에러 Ctrl + 1
//Surround with try/catch
}
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream("d:file.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{ //finally
fis.close(); //컴파일에러
}
}
// ↓
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream("d:file.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
87*∗異常発生:try→catch→finally/異常発生なし:try→finally自動リソースリターン(JDK 1.7)
try(FileOutputStream fos = new FileOutputStream("d:/file.txt")){
String str = "아무내용이나 써보자...";
byte[] bytes = str.getBytes();
for(int i = 0; i < bytes.length; i++){
fos.write(bytes[i]);
}
}catch(Exception e){
e.printStackTrace();
}
異常をきたす
IOException ioe = new IOException( );
try {
throw ioe;
}catch (IOException e) {
e.printStackTrace();
} //이런게 있다 그냥 알아만두자
throw new NullPointerException(); //예외처리를 하지 않아도 된다.
メソッドに例外を宣言
public static void main(String[] args) {
try {
method();
}catch (IOException e) {
e.printStackTrace();
}
}
private static void method() throws IOException {
throw new IOException();
}
Reference
この問題について(AVA DAY 20-異常処理), 我々は、より多くの情報をここで見つけました https://velog.io/@amuse_on_01/JAVA-DAY19-예외처리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol