Java 예외 처리(업데이트 중)
2358 단어 유난히
이상은 프로그램이 실행되는 동안 발생하는 이벤트로 실행 중인 프로그램의 정상적인 명령 흐름을 중단합니다.
package swf;
public class Test {
public static void main(String[] args){
int result = 3/0;
System.out.println(result);
}
}
실행 결과는 다음과 같습니다.
Exception in thread "main" java.lang.ArithmeticException: / by zero
at swf.Test.main(Test.java:14)
프로그램이 실행된 결과 보고서에 산수 이상 Arithmetic Exception이 발생하여 시스템이 더 이상 실행되지 않습니다.이런 상황은 이상이다.
2. 이상 처리 방법: 이상을 포착하고 이상을 던진다.
예 1(예외 캡처):
문자열을 정수로 변환하면 Integer 클래스의 parseInt () 방법으로 정상적으로 수행할 수 있습니다.그러나 이 문자열이 숫자 형식이 아니라면 parseInt () 방법은 이상을 던지고 프로그램은 이상이 발생한 위치에서 종료되며 다음 문장을 실행하지 않습니다.
package swf;
public class Test {
public static void main(String[] args){
String str = "lili";
System.out.println(str+" :");
int age = Integer.parseInt("20L");
System.out.println(age);
}
}
실행 결과는 다음과 같습니다.
lili :
Exception in thread "main" java.lang.NumberFormatException: For input string: "20L"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at swf.Test.main(Test.java:7)
우리는 알림 정보인'lili 나이는:'이 이미 출력되었기 때문에 이 문장은 이상이 없고 변수age는 출력되지 않았습니다. 프로그램이 데이터 형식 변환을 실행할 때 종료되었음을 알 수 있습니다.
자바 언어의 이상 포획 구조는try,catch,finally 3부분으로 구성되며,try-catch 문장 블록 문법은 다음과 같다.
package swf;
public class Test {
public static void main(String[] args){
try{
String str = "lili";
System.out.println(str+" :");
int age = Integer.parseInt("20L");
System.out.println(age);
}catch(Exception e){
e.printStackTrace();
}
System.out.println("program over");
}
}
그중try문장 블록은 이상이 있을 수 있는 자바 문장을 저장합니다.try문장 블록에 이상이 발생하면 프로그램은catch 블록으로 이동하여 실행합니다.
lili :
java.lang.NumberFormatException: For input string: "20L"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at swf.Test.main(Test.java:25)
program over
또한 완전한 이상 처리 문장은finally 문장을 포함해야 한다.프로그램에서 이상이 발생하든지 않든try-catch가 순조롭게 실행되든지finally 문장을 실행합니다.(finally 문장에 이상이 있는 경우는 포함되지 않음)
예 2(이상 캡처):
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이 이상은 저 이상이 아니다(계속)이전 글은 SEH에 관한 블로그를 써서 seh와 c++ try/catch의 통합이나 혼합 사용을 실현해야 한다고 말했습니다.vc 또는 vs 설정 방법을 통해 여러 가지 결점을 처리하기 때문이다(윗글 참조). 윈도우즈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.