Spring 트 랜 잭 션 관 리 는 런 타임 이상 만 스크롤 백 합 니 다.
4099 단어 spring 트 랜 잭 션 스크롤 백
package cn.xy.test;
import java.io.IOException;
/**
* Checked
* @author xy
*
*/
public class CheckedExceptionMethods
{
// , checkedException RuntimeException, checkedException
public void method1() throws Exception
{
System.out.println(" ");
}
//
public void testMethod1_01()
{
try
{
method1();
}
catch (Exception e)
{
e.printStackTrace();
}
}
//
public void testMethod1_02() throws Exception
{
method1();
}
public void testMethod1_03() throws Exception
{
throw new Exception();
}
public void testMethod1_04()
{
try
{
throw new Exception();
}
catch (Exception e)
{
e.printStackTrace();
}
}
// checkedException IOException
public void method2() throws IOException
{
System.out.println(" IO ");
}
public void testMethod2_01()
{
try
{
method2();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void testMethod2_02() throws Exception
{
method2();
}
}
우리 가 잘 아 는 Checked 이상 은 자바.lang.ClassNotFoundException 자바.lang.NoSuchMetodException java.io.IOException ② Runtime Exception Runtime 예 를 들 어 나 누 기 가 0 과 배열 아래 표 시 된 경 계 를 넘 는 등 빈번 하고 처리 가 번 거 로 우 며 설명 이나 캡 처 를 표시 하면 프로그램의 가 독성 과 운영 효율 에 큰 영향 을 줄 수 있 습 니 다.그래서 시스템 에서 자동 으로 감지 하여 부족 한 이상 처리 프로그램 에 맡 깁 니 다.물론 처리 요구 가 있다 면 포획 을 표시 할 수도 있 습 니 다.
package cn.xy.test;
/**
*
* @author xy
*
*/
public class RuntimeExcetionMethods
{
public void method3() throws RuntimeException
{
System.out.println(" ");
}
public void testMethod3_01()
{
method3();
}
public void testMethod1_02()
{
throw new RuntimeException();
}
}
우리 가 비교적 잘 아 는 RumtimeException 류 의 하위 클래스 는 자바.lang.Arithmetic Exception 자바.lang.Array Store Excetpion 자바.lang.classCastException 자바.lang.Index OutOf Bounds Exception 자바.lang.NullPointer Exception 3.Error 프로그램 이 제어 할 수 없 는 오류 가 발생 했 을 때 보통 사용자 에 게 알 리 고 프로그램의 실행 을 중단 합 니 다.이상 과 다른 것 은 Error 와 하위 클래스 의 대상 이 던 져 져 져 서 는 안 된다 는 것 이다.Error 는 throwable 의 하위 클래스 로 컴 파일 시간 과 시스템 오 류 를 대표 하 며 합 리 적 인 프로그램 이 캡 처 하려 고 하지 말 아야 할 심각 한 문 제 를 표시 합 니 다.Error 는 자바 가상 컴퓨터 에서 생 성 되 고 던 집 니 다.동적 링크 실패,가상 컴퓨터 오류 등 을 포함 합 니 다.절 차 는 그것 을 처리 하지 않 는 다.2.기본 방식 을 바 꾸 어@Transaction 주석 에서 noRollbackfor 와 Rollbackfor 를 정의 합 니 다.Transaction(noRollbackfor=Runtime Exception.class)@Transaction(Rollbackfor=Exception.class)은 기본 트 랜 잭 션 처리 방식 을 바 꾸 었 습 니 다.3.이것 은 사용자 정의 이상 이 있 을 때 사용자 정의 이상 을 Runtime Exception 에서 계승 하도록 요구 합 니 다.이렇게 던 질 때 Spring 의 기본 적 인 업무 처리 에 의 해 정확하게 처 리 됩 니 다.