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   
		}
	}
}

본 고 는'낭만적 인 웃음 훔 치기'블 로그 에서 나 온 것 으로 작가 와 연락 하 세 요!

좋은 웹페이지 즐겨찾기