java 31:이상
Throwable 클래스 이상 최고급 클래스
하위 클래스
Error :시스템 수준의 오류
스 택 메모리 넘 침
Exception:프로그램 수준의 오류
포획 메커니즘 류 를 통 해 해결 할 수 있다
try 문
try{
이 가능 하 다,~할 수 있다,...
}
try{}이것 은 문 제 를 발견 한 문장 입 니 다.
catch 구문
catch(Exception_Type e){
문제 해결 코드 세 션
}
catch 문 구 는 try 문 구 를 캡 처 하고 이 이상 을 해결 하 는 데 사 용 됩 니 다.catch 문 구 는 여러 번 나타 날 수 있 습 니 다.
캡 처 이상:마지막 catch 에 Exception 을 추가 해 야 합 니 다. 프로그램 이 알 수 없 는 이상 을 포착 하지 못 해서 중단 되 지 않 을 것 을 보증 할 수 있 습 니 다.또한 이 Exception 은 모든 catch 의 마지막 에 두 어야 합 니 다.
package day31;
public class Demo01 {
public static void main(String[] args){
try{
String str = null;
System.out.println(str.length());
}catch(NullPointerException e){
System.out.println("Null Pointer Exception");
}
System.out.println("Over");
try{
String str1 = "";
System.out.println(str1.length());
System.out.println(str1.charAt(3));
}catch(NullPointerException e){
System.out.println("Null Pointer Exception");
}catch(StringIndexOutOfBoundsException e){
System.out.println("String Index Out Of Bounds Exception");
}
System.out.println("Over");
try{
String str2 = "abc";
System.out.println(str2.length());
System.out.println(str2.charAt(1));
System.out.println(Integer.parseInt(str2));
}catch(NullPointerException e){
System.out.println("Null Pointer Exception");
}catch(StringIndexOutOfBoundsException e){
System.out.println("String Index Out Of Bounds Exception");
}catch(Exception e){
System.out.println("Unknown Error");
}
System.out.println("Over");
}
}
throw 구문
throw e;
throw 는 이상 한 인 스 턴 스 를 주동 적 으로 던 지 는 데 사용 합 니 다.
우리 가 정의 한 방법 은 실행 과정 에서 오류 가 발생 했 습 니 다.이 오 류 를 어떻게 해결 할 것 인 가 는 호출 자가 결정 해 야 할 때 입 니 다.
논리 에 맞지 않 는 조작 을 만 났 을 때 우 리 는 그것 을 이상 하 게 처리 할 수 있다.
package day31;
public class Person {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 1000) {
throw new RuntimeException(" ");
}
this.age = age;
}
}
package day31;
public class Demo02 {
public static void main(String[] args){
Person p = new Person();
p.setAge(100);
}
}
package day31;
public class Demo03 {
public static void main(String[] args) {
Person p1 = new Person();
try {
p1.setAge(10001);
} catch (Exception e) {
System.out.println(e);
}
}
}
thorws 성명
우리 가 정의 하 는 방법 에 오류 가 발생 할 수 있 습 니 다.우 리 를 위해 주동 적 으로 던 지 든 말 든 방법 에 나타 난 이상 이 방법 에서 처리 되 지 않 는 다 면 우 리 는 보통 성명 방법 은 동료 가 던 질 수 있 는 이상 을 설명 하고 호출 자 에 게 반드시 포착 해 야 한다 고 통지 합 니 다.
package day31;
/**
*
*
* throws
*/
public class Demo04 {
/**
* throws ,
* try-catch
* throws ( main jvm kill)
*/
public static void main(String[] args){
//
try {
connectionDB("192.168.1.2");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(" ");
System.out.println("OK");
}
/**
*
*throws , ,
*
*
* throw ,throws
*
*/
public static void connectionDB(String url) throws Exception{
if("192.168.1.1".equals(url)){
System.out.println(" ");
}else{
//
throw new Exception(" ");
}
}
}
package day31;
/**
*
* RuntimeException
* throws
*RuntimeException
* ,
* throws
* RunntimeException
*NullPointerException
*ArrayIndexOutOfBoundsException
*NumberFormatException
*ClassCastException
*/
public class Demo05 {
public static void main(String[] args){
}
public static void connectionDB(){
throw new RuntimeException("RunError");
}
}
마지막 블록
finally{
코드 세 션
}
finally 는 try 문장의 마지막 에 나타난다.
finally 블록 에 있 는 문 구 는 반드시 실 행 됩 니 다.try 에 이상 이 있 든 없 든.
마무리 작업 에 사용 하 다
package day31;
public class Demo06 {
public static void main(String[] args){
try{
String str = null;
System.out.println(str.length());
}catch(Exception e){
System.out.println("Error");
}finally{// try ,finally
System.out.println("FINALLY");
}
System.out.println("Over");
}
}
package day31;
public class Demo07 {
public static void main(String[] args){
try{
String age = "abc";
System.out.println("ConnectMysql");
System.out.println("SaveAge:"+Integer.parseInt(age));
}catch(Exception e){
System.out.println("Error");
}finally{//
System.out.println("CloseConnection");
}
System.out.println("ExitSystem.");
System.out.println();
try{
String age1 = "123";
System.out.println("ConnectMysql");
System.out.println("SaveAge:"+Integer.parseInt(age1));
}catch(Exception e){
System.out.println("Error");
}finally{//
System.out.println("CloseConnection");
}
System.out.println("ExitSystem.");
}
}
package day31;
public class Demo08 {
public static void main(String[] args){
System.out.println(test(null)+","+test("0")+","+test(""));
// 1 0 2
// finally so 4,4,4
}
public static int test(String str){
try{
return str.charAt(0) - '0';
}catch(NullPointerException e){
return 1;
}catch(RuntimeException e){
return 2;
}catch(Exception e){
return 3;
}finally{//
return 4;//so finally return finally return
}
}
}
재 작성 방법 이상 처리
부모 클래스 방법 중 throws 를 통 해 이상 한 던 지기 가 있 음 을 밝 혔 습 니 다.
하위 클래스 재 작성 시 throws 를 설명 하지 않 아 도 됩 니 다.
하위 클래스 재 작성 시 부모 클래스 가 던 진 이상 한 하위 클래스 이상 을 던 질 수 있 습 니 다.
부모 클래스 런 타임 예외 던 지기
하위 클래스 는 NullPointer Exception 을 던 질 수 있 습 니 다.
하위 클래스 재 작성 시 부모 클래스 에서 던 진 부분 이상 만 던 질 수 있 습 니 다.
부류 throws 3 개
하위 클래스 는 throws 2 개 가능 합 니 다.
하위 클래스 재 작성 시 부모 클래스 방법 에서 던 지지 않 은 추가 이상 을 던 져 서 는 안 됩 니 다.
부류 throws 3 개
하위 클래스 throws 4 개 안 돼 요.
하위 클래스 재 작성 은 부모 클래스 방법 에서 던 질 수 없 는 이상 한 부모 클래스 이상 입 니 다.
부모 클래스 throws 런 타임 예외
하위 클래스 throws 불가 예외
package day31;
public class Demo08 {
public static void main(String[] args){
System.out.println(test(null)+","+test("0")+","+test(""));
// 1 0 2
// finally so 4,4,4
}
public static int test(String str){
try{
return str.charAt(0) - '0';
}catch(NullPointerException e){
return 1;
}catch(RuntimeException e){
return 2;
}catch(Exception e){
return 3;
}finally{//
return 4;//so finally return finally return
}
}
}
본 고 는'낭만적 인 웃음 훔 치기'블 로그 에서 나 온 것 으로 작가 와 연락 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.