예외
예외 유형
예외 유형
에러의 종류는 크게 이하의 3개.
1. 문법 오류
2. 런타임 오류
3. 논리 오류
1. 문법 오류
· 문법 오류로 인한 컴파일 오류
・예는 세미콜론 잊어, 철자 미스 등
· 컴파일되지 않음
2. 런타임 오류
· 실행 중 오류가 발생하여 발생하는 오류
・예는 있어야 하는 파일이 삭제된다, 있어야 하는 값이 null값이 되어 있는 등
· 컴파일
3. 논리 오류
· 구문 오류로 인해 실행 결과가 의도 한 것과 다르다.
・예는 계산기 소프트로 3+5가 35로 출력되는 등
· 컴파일
정리하면 ...
세 가지 종류가 있지만
・「2. 실행시 에러」에 대해서는, 에러 발생시를 상정한 코드를 기술해 대응!
・「1. 문법 에러」 ・「3. 논리 에러」는, 원래의 코드를 수정해 대응!
예외를 나타내는 클래스와 그 종류
・에러 발생 상황마다 클래스가 준비되어 있어 상속 계층으로 구성되어 있다
・클래스 마다의 의미 ・계속 계층도는 이하와 같다
정리하면 ...
Exception
에 대해서는, 에러 발생시에 대응할 수 있는 코드를 기술할 필요가 있다
예외 처리
예외를 조사하는 방법
예외는 JavaAPI에 설명되어 있습니다.
예
예외 처리 유형
예외 처리의 종류는 크게 이하의 2개이다.
1.catch 구문
2.throws 구문
1.catch 구문
catch 구문이란?
예외가 발생했을 경우의 처리를, 자신의 메소드내에 기술할 때에 사용한다
사용방법
try {
本来の処理
}catch (例外クラス 変数名) {
例外が発生した場合の処理
}finally{
例外があってもなうても必ず実行する処理
}
[처리 흐름]
① try
메소드내에 처리를 기술해, 예외가 발생했을 경우는, 에러 클래스의 인스턴스를 catch
에 건네준다
② catch(例外クラス 変数名)
의 (例外クラス 変数名)
에서 예외 인스턴스를 받는다.
메소드내에는 받은 후의 처리를 기술한다.
③ finally
에서는 파일을 닫거나 절단하는 등의 처리를 실시한다.
예외 인스턴스가 가지는 정보
①예외 정보의 해설문
소위, 오류 메시지. String getMessage()
로 표시.
② 스택 트레이스
JVM이 프로그램의 메소드를 어떤 순서로 호출해, 어디에서 예외가 발생했는가.void printStackTrace
로 내용 표시.
예
public static void main (String[] args) {
FileWriter fw = null;
try {
fw = new FileWriter("date.txt");//インスタンスの生成
fw.write("hellow");//中にhellowと書き込む
}catch (Exception e) {
System.out.println("何らかの例外が発生しました");
}finally{
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
보충
· catch (Exception e)
는 Exception
의 자손의 예외 인스턴스라면 모두 받는다는 의미
・FileWriter 클래스에 대해서는 이하 참조
htps : // / cs. 오 c. 코 m/쟈ゔぁ세/jp/6/아피/쟈め/이오/후우 W리테 r. HTML
htps //w w. 세주쿠. 네 t/bぉg/20657
finally를 생략하는 방법
try (
ファイルインスタンスの生成
){
ファイルに対する処理
}catch{
}
()내에서 열린, 파일이나 데이타베이스는, 처리 종료후에 자동적으로 close
메소드를 호출해 준다.
2.throws 구문
throws 구문이란?
예외가 발생했을 경우의 처리를, 호출원의 메소드에 부탁할 때에 기술하는 방법
사용방법
メソッド名 throws 例外クラス名1,例外クラス名2
[보충]
・ throws
를 선언하는 것으로, try catch文
의 기술이 의무는 없어진다
· 호출자 메소드는 try catch文
를 작성해야합니다.
예외를 발생시키는 방법
사고방식
발생한 예외를 받을 뿐만 아니라, 예외를 통지하는 것이 가능
사용방법
throw 例外インスタンス名
예
//mainメソッド
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setAge(-100);
}
}
//Personクラス
public class Person {
int age;
public void setAge(int age) {
if(age<0) {
throw new IllegalArgumentException("年齢は正の数を指定すべきです。");
}
this.age = age;
}
}
//出力結果
Exception in thread "main" java.lang.IllegalArgumentException: 年齢は正の数を指定すべきです。
at Java15.Person.setAge(Person.java:7)
at Java15.Main.main(Main.java:6)
· IllegalArgumentException 클래스에 대해서는 이하 참조
htps : // / cs. 오 c. 코 m / 그럼 ぁせ / jp / 7 / 아피 /
Reference
이 문제에 관하여(예외), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k_sk193/items/68c32fed4638ae2fa9fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
예외를 조사하는 방법
예외는 JavaAPI에 설명되어 있습니다.
예
예외 처리 유형
예외 처리의 종류는 크게 이하의 2개이다.
1.catch 구문
2.throws 구문
1.catch 구문
catch 구문이란?
예외가 발생했을 경우의 처리를, 자신의 메소드내에 기술할 때에 사용한다
사용방법
try {
本来の処理
}catch (例外クラス 変数名) {
例外が発生した場合の処理
}finally{
例外があってもなうても必ず実行する処理
}
[처리 흐름]
①
try
메소드내에 처리를 기술해, 예외가 발생했을 경우는, 에러 클래스의 인스턴스를 catch
에 건네준다②
catch(例外クラス 変数名)
의 (例外クラス 変数名)
에서 예외 인스턴스를 받는다.메소드내에는 받은 후의 처리를 기술한다.
③
finally
에서는 파일을 닫거나 절단하는 등의 처리를 실시한다.예외 인스턴스가 가지는 정보
①예외 정보의 해설문
소위, 오류 메시지.
String getMessage()
로 표시.② 스택 트레이스
JVM이 프로그램의 메소드를 어떤 순서로 호출해, 어디에서 예외가 발생했는가.
void printStackTrace
로 내용 표시.예
public static void main (String[] args) {
FileWriter fw = null;
try {
fw = new FileWriter("date.txt");//インスタンスの生成
fw.write("hellow");//中にhellowと書き込む
}catch (Exception e) {
System.out.println("何らかの例外が発生しました");
}finally{
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
보충
·
catch (Exception e)
는 Exception
의 자손의 예외 인스턴스라면 모두 받는다는 의미・FileWriter 클래스에 대해서는 이하 참조
htps : // / cs. 오 c. 코 m/쟈ゔぁ세/jp/6/아피/쟈め/이오/후우 W리테 r. HTML
htps //w w. 세주쿠. 네 t/bぉg/20657
finally를 생략하는 방법
try (
ファイルインスタンスの生成
){
ファイルに対する処理
}catch{
}
()내에서 열린, 파일이나 데이타베이스는, 처리 종료후에 자동적으로
close
메소드를 호출해 준다.2.throws 구문
throws 구문이란?
예외가 발생했을 경우의 처리를, 호출원의 메소드에 부탁할 때에 기술하는 방법
사용방법
メソッド名 throws 例外クラス名1,例外クラス名2
[보충]
・
throws
를 선언하는 것으로, try catch文
의 기술이 의무는 없어진다· 호출자 메소드는
try catch文
를 작성해야합니다.예외를 발생시키는 방법
사고방식
발생한 예외를 받을 뿐만 아니라, 예외를 통지하는 것이 가능
사용방법
throw 例外インスタンス名
예
//mainメソッド
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setAge(-100);
}
}
//Personクラス
public class Person {
int age;
public void setAge(int age) {
if(age<0) {
throw new IllegalArgumentException("年齢は正の数を指定すべきです。");
}
this.age = age;
}
}
//出力結果
Exception in thread "main" java.lang.IllegalArgumentException: 年齢は正の数を指定すべきです。
at Java15.Person.setAge(Person.java:7)
at Java15.Main.main(Main.java:6)
· IllegalArgumentException 클래스에 대해서는 이하 참조
htps : // / cs. 오 c. 코 m / 그럼 ぁせ / jp / 7 / 아피 /
Reference
이 문제에 관하여(예외), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k_sk193/items/68c32fed4638ae2fa9fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
throw 例外インスタンス名
//mainメソッド
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setAge(-100);
}
}
//Personクラス
public class Person {
int age;
public void setAge(int age) {
if(age<0) {
throw new IllegalArgumentException("年齢は正の数を指定すべきです。");
}
this.age = age;
}
}
//出力結果
Exception in thread "main" java.lang.IllegalArgumentException: 年齢は正の数を指定すべきです。
at Java15.Person.setAge(Person.java:7)
at Java15.Main.main(Main.java:6)
Reference
이 문제에 관하여(예외), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k_sk193/items/68c32fed4638ae2fa9fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)