Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5. Exceptions #10

Open
JustKode opened this issue Feb 15, 2022 · 9 comments
Open

5. Exceptions #10

JustKode opened this issue Feb 15, 2022 · 9 comments
Labels
Class Review 매 수업 정리 내용을 5줄 정도로 요약 하여 올립니다.

Comments

@JustKode
Copy link
Member

강의 자료
아래 이슈에 답글로 5줄 요약을 남겨 주세요.

@JustKode JustKode added the Class Review 매 수업 정리 내용을 5줄 정도로 요약 하여 올립니다. label Feb 15, 2022
@lomayd
Copy link

lomayd commented Feb 15, 2022

  1. 프로그램 오작동, 시스템 내부의 오류로 인한 예외 사항을 처리하기 위해 예외 처리가 필요하다.

  2. 예외처리는 try 블럭에 예외처리를 시행할 코드를 삽입, catch 블럭에 예외가 발생할 것으로 예상되는 Exception 클래스를 삽입하면 된다.

  3. Finally 블럭을 통해 예외 처리 유무 상관 없이 해당 블럭을 무조건 실행시키게 할 수 있다.

  4. Exception 클래스에 있는 printStackTrace()를 통해 예외 발생 시점 호출 스택에 있었던 메서드들의 정보 및 메세지를 출력할 수 있고, getMessage()를 통해 Exception 클래스 인스턴스에 저장된 메세지를 얻을 수 있다.

  5. 컴파일 시점에서 예측 가능한 예외인 Exception과, 논리적 오류로 인해 발생한 예외인 RuntimeException이 존재하며, RuntimeException이 Exception을 상속받은 구조이다.

@splguyjr
Copy link

예외 처리
-try, catch(Exception e)를 기본으로 활용

-finally 블럭을 이용하면 예외처리가 되든 안되든 블럭내의 해당내용 실행가능

-printStackTrace()를 통해 예외 발생 시점에 호출 스택에 있엇던 메서드들의 정보 및 예외 메시지를 화면에 출력하고, getMessage()를 통해 발생한 Exception 클래스의 인스턴스에 저장된 메시지를 얻을 수 있음.

-Exception은 컴파일 시점에서 예측 가능한 예외들이 속하고
RuntimeException은 Exception을 상속받은 구조로써 논리적 오류에 속하는 예외

-함수에 throws문을 통해 특정 예외 클래스가 나올 것이라고 타입을 지정해줄 수 있음. 이때 지정된 해당 함수가 try, catch 문안에 없는 경우 에러를 발생시키니 무조건 에외 처리해줄것 .

@kevinlim17
Copy link

kevinlim17 commented Feb 16, 2022

  • C++과 마찬가지로 Java에서도 try, catch(Exception class name) 를 이용해 예외처리를 구현한다.
  • 예외가 발생될 것으로 예상되는 Exception class를 catch()문 안에 넣어 예외처리를 구현하고, 예측되지 않을 경우 Exception 클래스를 사용해 다양한 케이스의 예외를 일괄처리할 수 있다. (ex. ArithmeticException 이나 FileNotFoundException 클래스 등은 Exception 클래스를 상속받은 자식 클래스들이다.)
  • finally 블록을 이용해 해당 블록 안의 코드를 무조건 실행시킬 수 있다. (try 블록 안에서 리턴값이 존재하더라도 실행됨.)
  • Exception 클래스의 메소드인 printStackTrace()는 예외 발생 시점에 호출 스택에 있었던 메서드들의 정보 및 예외 메시지를 화면에 출력하고, getMessage()는 발생한 Exception class의 인스턴스에 저장된 메시지를 얻을 수 있다.
  • Exception Class에는 컴파일 시점에서 예측 가능한 예외를 구현한 Class들이 속하고, RuntimeException Class에는 프로그래머의 실수로 인해 일어나는 예외(논리적 오류)를 구현한 Class들이 속한다. RuntimeException 클래스가 Exception 클래스를 상속받는 구조.
  • try-with-resource 기능은 try 문 옆에 괄호로 close() 가 필요한 스트림 클래스 같은 경우에, try-catch 문이 끝나면, 스트림을 자동으로 닫아주는 기능을 수행한다.

@yoongja
Copy link
Member

yoongja commented Feb 16, 2022

-try블럭에 예외처리할 코드를 삽입한다. , catch문에 예외가 발생할 것으로 발생하는 exception class를 넣는다.

  • finally : 예외 처리가 되든, 되지않든 꼭 실행을 원하는 코드블럭에 사용한다. try문에 return 이 있더라도 , 무조건 실행된다.
  • printStackTrace : 예외 발생 시점에 있었던 메서드들의 정보와 예외 메시지를 출력한다.
  • getMessage : 발생한 exception클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
  • exception을 상속 받아서 다른 예외 클래스를 만들 수 있다.용도에 따라 상속받아야 하는 exception이 다르다. super을 통해 exception클래스의 생성자를 호출 하여 메시지를 생성 할 수 있다.
  • close()가 필요한 스트림 클래스인 경우 try-catch문이 끝나면 스트림을 자동으로 닫아준다.
  • FileNotFoundException : signals that an attempt to open the file denoted by a specified pathname / EOFException : signals that an end of file or end of stream has been reached unexpectedly during input / IOException : which the user inputs improper data into the program.
  • throws : 특정 예외 클래스가 나올 것이라 예외 타입을 지정하는 것이다.

@cherrie-k
Copy link

  • C++에서처럼 자바에서도 try, catch문을 사용해서 예외 처리 가능. 예상하지 못한 exception은 클래스 다형성을 이용해서 처리
  • finally: 예외 처리가 되든 안되든 반드시 실행. try문에서 리턴되더라도 무조건 실행된다.
  • printStackTrace(): 예외 발생 시점에 호출 스택에 있었던 메서드들의 정보와 예외 메세지를 화면에 출력
  • getMessage(): 발생한 exception 클래스의 인스턴스에 저장된 메시지를 얻는다.
  • RuntimeException은 Exception을 상속받음. 전자는 논리적 오류에 속하고, 후자는 사용자의 실수 등 외적 요인으로 발생하는 컴파일 시점에서 예측 가능한 예외들이다.
  • try-with-resource: try문 옆에 괄호로 close()가 필요한 스트림 클래스 같은 경우에 try-catch문이 끝나면 스트림을 자동으로 닫아준다.
  • 함수에 throws문을 입력하여 특정 예외 클래스 타입 지정 가능.

@nahyun0121
Copy link

  • Java의 예외 처리: C++과 마찬가지로 try & catch문을 쓸 수 있다. Java 7부터는 try문 옆에 괄호를 통해 close()가 필요한 스트림을 자동으로 닫아주는 기능을 한다.
  • 다형성을 이용하여 예상치 못한 Exception들도 일괄 처리할 수 있다.
  • Finally: 예외 처리가 되든, 되지 않든 무조건 실행되게 하고 싶은 코드를 넣으면 된다.
  • printStackTrace(): 예외 발생 시점에 호출 스택에 있었던 메서드들의 정보 및 예외 메시지를 화면에 출력한다. getMessage(): 발생한 Exception 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
  • Exception을 상속받아 또다른 Execption 클래스를 만들고, 그것을 throw할 수도 있다.

@choi5798
Copy link

프로그램이 작동 하는중 의도치 않는 예외들이 발생할 수 있는데 예외처리를 하여 이 예외들을 관리할 수 있고 프로그램의 비정상적인 종료나 오작동 등을 방지할 수 있다

오류가 예상 되는 부분에 try를 쓰고 예상되는 오류를 catch로 잡아내어 처리를 해줄 수 있다. 예외 발생과 상관 없이 꼭 실행되어야 하는 부분은 finally 키워드 안에 작성해주면 된다.

기존에 정의되어 있는 예외 외에도 사용자가 직접 예외들을 만들 수 있으며 exception 클래스를 상속 받아 만들 수 있다.

try-with-resource 라는 문법이 있는데 JDK1.7 이상부터 지원한다. 보통의 try{}...가 아닌 try(FileReader fr = new FileReader(...){} 로 try 뒤에 close()가 필요한 스트림들을 작성해주면 해당 try-catch문이 끝남과 동시에 작성된 스트림들을 자동으로 close() 해준다.

throw vs throws : throw는 뒤에 예외클래스를 적어 예외를 직접 발생시키는 키워드 이고 throws 는 함수 뒤에 적어 해당 함수에서 명시 된 예외클래스들의 발생이 예상된다고 적어줄 수 있다.

@Chae-Js
Copy link

Chae-Js commented Feb 17, 2022

  1. Java에서도 C++과 마찬가지로 try, catch문을 통해 예외처리를 한다.
  2. 예외 처리에 무관하게 실행해야하는 코드 블럭인 경우 finally{} 블럭을 통해 실행시킬 수 있다.
  3. Exception 클래스의 printStackTrace() 를 통해 예외 발생 시점에 호출 스택에 있던 메서드들의 정보, 예외 메시지를 출력할 수 있고 getMessage() 를 통해 발생한 Exception 클래스의 인스턴스에 저장된 메시지를 얻을 수 있습니다.
  4. try-with-resource기능을 통해 close가 필요한 경우 자동으로 close()의 기능을(닫아주는) 해줍니다.
  5. throws문을 통해 특정 예외 클래스가 나올 것임을 지정해줄 수 있습니다

@HYEOK9
Copy link

HYEOK9 commented Feb 17, 2022

  • 예외처리는 try, catch를 이용한다.
  • finally 구문을 통해 예외상황이든 아니든 실행되는 코드를 작성할 수 있다.
  • printStackTrace(), getMessage()로 예외처리의 정보를 알 수 있다.
  • Exception class를 상속받아서 또 다른 예외처리 클래스를 만들고 처리할 수 있다.
  • throw문을 이용해 예외상황을 특정할 수 있고, 많은 이점을 가진다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Class Review 매 수업 정리 내용을 5줄 정도로 요약 하여 올립니다.
Projects
None yet
Development

No branches or pull requests

10 participants