본문 바로가기

AdvancedJava

[3일차]예외처리

에러처리



try catch문



에러를 처리하는 구문



throw Excetion 예외를 상위로 위임해서 처리.




예외처리는 상위로 위임하되 반드시 처리는 해야한다. 이것은 자신이 해당 상황에서 처리하지 못할때 상위로 위임하여, 처리하게 만드는것


제일 불친절한 것은 사용자에게 에러 메세지를 띄우는것.


예외를 디테일 하게 잡기위해서 



try{}


catch

catch

catch


이런식으로 분기하여 잡을 수 있다. 이때 catch 하는 상황에서는 가장 밑에있는 subclass를 맨 위로 올려야 한다. 

finally를 사용하면 예외가 발생해도 일단 실행하는 코드를 쓸수있음.



RuntimExcetion

 Vm에서 어플리케이션 수행중 발생하는 예외 상황


ex 


Runtime Excetion을 상속받아 만들어진 애들.

 - SecurityExcetion 보안적으로 문제되는 예외상황. 네트워크나 파일

 - ArithmeticEx

 - NegativeAraySizeEx

 - ArrayindexOutOfBoundsEx

명시적으로 잡지 않아도 된다. 대부분은 코드를 잘 못짠것 ....

하지만 어쩔 수 없는 부분도 있다. 



Method Overriding Exception


상위 메소드에서 던져진 예외나 또는 그 여외의 하위 클래스 예외 만을 던질 수 있다.?


Excetion e1 과 e2가 있을 때,


상속관계에서 부모클래스가 e1을 throw 할시 자식도 e1을하든 e2를 하든 상관없다.  




os 이야기

elf 포맷은 start 섹션에서 main 함수가 시작된다. 

윈도우 같은경우는 shell이란 곳에서 알아먹는다. 

뭐.. 어쨋건 뭐든 main 함수를 찾아 실행하는 것이다. 

안드로이드는 jvm dalvik이라는 버츄얼 머신이 main 함수를 실행 시킨다. 
main을 실행시킨 애가 모든 Exception을 다 잡고, 호출해준다. 그래서 우리가 잡아주고 고칠 수 있다.