ASP/ADO.Net C# 실무 과정 자료] 참조 형식








ASP/ADO.Net C# 실무 과정 자료] 참조 형식


실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조 형식


■ 값 형식이 아닌 모든 것은 참조형식이다. 객체, 문자열, 배열, 인터페이스, 예외 등


값 형식은 Stack에 값이 존재한다.


■ 대부분의 객체들은, 데이터 값을 다른 곳에 보관하고, 데이터 값이 있는 곳의 주소만을 가지고 있다.


■ 데이터 값은 실제로 관리힙(managed heap)에 들어있다. 변수 위치에는 데이터가 들어 있는 관리힙의 위치가 참조 되어 있을 뿐이다.



ASP/ADO.Net C# 실무 과정 자료] Try-Catch-Finally 예제 






ASP/ADO.Net C# 실무 과정 자료] Try-Catch-Finally 예제 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


Try-Catch-Finally 예제 


설명)

■(1) 에서 오브젝트가 일을 많이 벌여 놓은 경우이다. 구현하진 않았다. 파일을 열어놓은 경우, DB를 lock해 둔 경우 등이 예가 될 수 있다.


■(2)에서 억지로 예외를 발생시켰다. 예외 발생 직후 컨트롤은 바로 catch 문으로 이동한다.


■(3)에서 예외를 처리한다.


■(4)는 예외처리가 끝나고 나서 최종적으로 하는 일을 보여준다. (1)에서 벌여놓은 일들을 정리하고, 메시지를 보여준다.

예제의 결과는 다음과 같다.


테스트용 예외

finally에서 복구를 했습니다.



ASP/ADO.Net C# 실무 과정 자료] 예외에서의 복구 finally






ASP/ADO.Net C# 실무 과정 자료] 예외에서의 복구 finally

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


예외에서의 복구 finally


■ try-catch 가 끝난 다음 최종적으로 반드시 실행되는 명령들이다.


■ 주로 예외 복구가 필요할 때, 사용된다.


■ 아래는 기본적인 사용법이다.



ASP/ADO.Net C# 실무 과정 자료] 예외 받아 다시 던지기







ASP/ADO.Net C# 실무 과정 자료] 예외 받아 다시 던지기

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


예외 받아 다시 던지기


■ catch된 예외를 다시 던질 수 있다. 이것은 catch 블록 내부에서 throw 하는 방법으로 이루어 진다.


■ (2)throw; 만 쓰면 받은 객체를 다시 던짐을 의미한다.

(/-.-)/ ㅛ   이것을   ㅠ_(-.-_)받아서    (/-.-)/ ㅛ 다시던짐




ASP/ADO.Net C# 실무 과정 자료] 예외 던지기 (throw)






ASP/ADO.Net C# 실무 과정 자료] 예외 던지기 (throw)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


예외 던지기 (throw)


ASP/ADO.Net C# 실무 과정 자료]  빈 catch 문






ASP/ADO.Net C# 실무 과정 자료]  빈 catch 문

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


빈 catch 문




다중 catch 사용의 주의점 

■( 4)와 같이 빈 catch 블럭은 단 하나만 존재하여야 한다.


■ 빈 catch와 객체를 지정한 catch가 같이 사용될 수도 없다.


■ 빈 catch 보다는 Exception 객체를 catch하는 편이 더 도움이 많이된다는 것을 알아둔다.


■ 당연한 이야기지만, 다중블럭에서는 catch 구문에 동일한 예외객체를 두번이상 사용할 수 없다.


ASP/ADO.Net C# 실무 과정 자료] 다중 catch 문






ASP/ADO.Net C# 실무 과정 자료] 다중 catch 문

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


다중 catch 문


다중 catch 사용의 주의점 

■ catch 블럭은 단 하나만 수행된다. 이때 위쪽에 선언된 블록이 우선적으로 수행된다. 앞의 예제에서, 예외가 포착되면 그것이 Overflow인지를 검사하고, 그 다음 DivideByZero인지 검사하고 하는 식이다.

■ 상속상으로 하위에 있는 예외는 포착된다. 앞장의 (3)에서 Exception 클래스의 예외를 포착하게 만들면 모든 예외가 포착될 것이다.

■ 따라서 상속상 상위에 있는 예외 객체를 catch문의 하위에 두어야만 한다. 만약 (3)과 (1)의 자리가 바뀌었다면 (3)이 모든 예외를 포착해 버려 (1)과 (2)는 무력화 된다. C#에서는 컴파일시에 에러를 발생시킨다




ASP/ADO.Net C# 실무 과정 자료] Try-Catch  예제 






ASP/ADO.Net C# 실무 과정 자료] Try-Catch  예제 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


Try-Catch  예제 




설명 )


■ (1) check 를 명시하여 형변환시 오버플로우 체크를 요구했다. 따라서, (2)에서 오버플로우 예외가 발생한다.


■ (3)은 실행되지 않는다. 예외가 발생하면 프로그램의 컨트롤은 바로 try문으로 이동한다.


■ (4)에서 예외를 잡는다.


■ (5)는 (4)에서 잡은 예외 객체 e의 프로퍼티를 보여준다. 자세히 설명하진 않았지만, Exception객체들은 기본적으로 (5)의 프로퍼티들을 가지고 있다.


+ Recent posts