1122cc
328
2020-05-23 18:20:14
8
163

과제중 예외처리 부분의 문제점을 쓰라는데 도저히 모르겠습니다.



이게 문제인데..

문제가 있는지/ 없는지 밝히라곤 하지만 문제가 있으니 문제를 내셨을거 같고..

이게 왜 문제인지 전혀 모르겠습니다...

힌트라도 주실 수 있을련지요 ㅠ

0
0
  • 답변 8

  • devcrema
    968
    2020-05-23 18:26:40

    catch 순서를 찾아보시면 되겠네요.

    맨 아래쪽 catch문에 도달할 수 있을까요?

    0
  • 옹냥
    42
    2020-05-23 18:53:10

    Exception은 모든 Exception을 포함하므로, ArithmeticException이 발생하면 아래 catch문에 도달할 수 없습니다!!!




    0
  • 와니와니
    68
    2020-05-23 23:24:33

    catch 첫번째에서 상위개념인 Exception 객체의 예외처리를 하였음으로 하위 객체인  ArithmeticException 가 처리하는 일이 있어도 처리를 못함

    0
  • 1122cc
    328
    2020-05-25 08:28:54

    옹냥와니와니

    답변 감사합니다.!

    ArithmeticException 발생시 2번째 Catch문에 도달하기전에 

    상위 Catch문에서 이미 포괄적으로 Exception 처리를 해주었기때문에

    2번째 Catch문엔 절대 도달할 수 없으므로,

    컴파일 자체에는 문제가 없으나 실질적으로는 쓸모없는 코드라고 이해하면 될까요?




    0
  • 와니와니
    68
    2020-05-27 20:21:03
    저 문장에서는 컴파일 에러가 발생합니다!
    0
  • 1122cc
    328
    2020-05-28 10:40:24

    와니와니

    실제로 컴파일 에러가 나는 이유는 무엇인가요?

    그냥 2번째 Catch문이 쓸데없는 코드일 뿐이지 컴파일 에러까지 발생하는 이유는 궁금하네요..

    1, 2번째 Catch문 순서만 바꿔주면 에러가 발생하지 않나요?

    0
  • 와니와니
    68
    2020-05-28 12:15:57

    1. 컴파일 에러가 나는 이유 : Exception 은 NullPointerException 등 하위 익셉션의 상위 클래스 입니다. 따라서 catch 문을 작성할 때에는 하위 클래스부터 예외 처리를 해야 하기 때문에 상위 클래스인 Exception 이 온다면 하위 예외인 2번째 catch 에 대해서는 처리를 할 수 없습니다. 따라서 컴파일 에러가 발생합니다.

    그리고 2번째 Catch문이 쓸데없는 코드일 뿐이지 라는 말에 대해서 설명을 적자면 필요 없는 코드인데 적을 필요는 없잖아요 ? .. 만약 컴파일 에러가 발생하지 않는다면 이미 에러는 상위클래스인 Exception 에서 모든 예외를 처리 하는데 아래 catch 문에서 하는 일이 없게 됩니다.

    어떤 예외를 처리할 것인가에 대해서 하위 클래스에서 -> 상위 클래스로 가면 문법 에러가 아님

    0
  • 1122cc
    328
    2020-05-28 13:30:01

    와니와니 


    친절한 설명 답변 정말 감사드립니다.

    덕분에 완전 이해가 되었어요 ~~

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.