«exception-handling» 태그된 질문

예외 처리는 특수 처리가 필요한 예외적이거나 예외적 인 조건이 발생하는 경우 (일반적으로 프로그램 실행의 흐름이 변경됨)에 대응하는 프로세스입니다.

8
예외 : 왜 일찍 던지나요? 왜 늦게 잡을까요?
격리 예외 처리에 대한 잘 알려진 모범 사례가 많이 있습니다. 나는 "해야 할 것과하지 말아야 할 것"을 충분히 알고 있지만 더 큰 환경에서 모범 사례 나 패턴에 관해서는 상황이 복잡해집니다. "얼마나 일찍 늦게까지 잡아라"-여러 번 들었지만 여전히 혼란 스럽습니다. 하위 수준 계층에서 null 포인터 예외가 발생하면 왜 일찍 던지고 늦게 …


8
캐치 절없이 try ...를 사용하는 이유는 무엇입니까?
프로그래밍하는 고전적인 방법은입니다 try ... catch. try없이 사용하는 것이 언제 적절 catch합니까? 파이썬에서 다음은 합법적으로 보이며 의미가 있습니다. try: #do work finally: #do something unconditional 그러나 코드는 catch아무것도 하지 않았습니다 . 마찬가지로 Java에서는 다음과 같이 생각할 수 있습니다. try { //for example try to get a database connection } finally …


3
예외 사양이 나쁜 이유는 무엇입니까?
약 10 년 전에 학교로 돌아와서 예외 지정자를 사용하도록 가르치고있었습니다. 내 배경은 그들 중 하나이기 때문에 강제하지 않으면 C ++을 완고하게 피하는 Torvaldish C 프로그래머이기 때문에 나는 C ++로만 끝나고 내가 할 때 예외 지정자를 계속 사용합니다. 그러나 대부분의 C ++ 프로그래머는 예외 지정자를 찌푸리는 것처럼 보입니다. 나는 이와 같은 …

6
Java 점검 예외에 대한 임시 해결책
람다 및 기본 메소드 인터페이스에 대한 새로운 Java 8 기능이 많이 있습니다. 그러나 여전히 확인 된 예외로 지루합니다. 예를 들어 객체의 보이는 필드를 모두 나열하려면 간단히 다음과 같이 작성하고 싶습니다. Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); 그러나 get메소드가 Consumer인터페이스 계약에 동의하지 않는 확인 된 예외를 throw 할 수 있으므로 해당 예외를 …

8
예외 처리 메커니즘없이 현대 언어를 디자인해야하는 이유는 무엇입니까?
많은 현대 언어 는 풍부한 예외 처리 기능을 제공 하지만 Apple의 Swift 프로그래밍 언어 는 예외 처리 메커니즘을 제공하지 않습니다 . 내가 예외를 겪었을 때, 이것이 의미하는 바에 대해 마음을 감싸는 데 어려움을 겪고 있습니다. Swift에는 어설 션이 있으며 물론 반환 값이 있습니다. 그러나 나는 예외 기반 사고 방식이 예외없이 …


8
예외 객체를 던지는 대신 반환하는 합법적 인 이유가 있습니까?
이 질문은 예외 처리를 지원하는 모든 OO 프로그래밍 언어에 적용됩니다. 설명 목적으로 만 C #을 사용하고 있습니다. 일반적으로 코드가 즉시 처리 할 수 ​​없다는 문제가 발생 catch하면 다른 위치 (일반적으로 외부 스택 프레임) 의 절에서 발견되는 예외가 발생합니다 . Q : 예외가 발생하지 않고 잡히지 않고 단순히 메서드에서 반환 된 …

4
try-catch에 대괄호가 필요한 이유는 무엇입니까?
다양한 언어로 (Java는 적어도 C #이라고 생각합니까?) if( condition ) singleStatement; while( condition ) singleStatement; for( var; condition; increment ) singleStatement; 따라서 문이 하나만 있으면으로 새 범위를 추가 할 필요가 없습니다 { }. try-catch로이 작업을 수행 할 수없는 이유는 무엇입니까? try singleStatement; catch(Exception e) singleStatement; 항상 새로운 범위 또는 무언가를 …

5
발생 될 수없는 확인 된 예외를 처리하는 방법
예: foobar = new InputStreamReader(p.getInputStream(), "ISO-8859-1"); 인코딩이 하드 코딩되고 정확하기 때문에 생성자는 사양에 선언 된 UnsupportedEncodingException을 throw하지 않습니다 (Java 구현이 중단되지 않으면 어쨌든 손실됩니다). 어쨌든 Java는 어쨌든 그 예외를 처리하도록 강요합니다. 현재는 try { foobar = new InputStreamReader(p.getInputStream(), "ISO-8859-1"); } catch(UnsupportedEncodingException e) { /* won't ever happen */ } 어떤 …


4
마지막으로 예외를 던지기
Fortify와 같은 정적 코드 분석기는 finally블록 안에 예외가 발생했을 때 "불만" 이라고 말합니다 Using a throw statement inside a finally block breaks the logical progression through the try-catch-finally. 일반적으로 나는 이것에 동의합니다. 그러나 최근 에이 코드를 보았습니다. SomeFileWriter writer = null; try { //init the writer //write into the file …

12
'시도를 잡아라… 마지막으로'구성의 '마지막'부분이 필요한가?
C ++ 및 초기 버전의 PHP와 같은 일부 언어 finally는 try ... catch ... finally구문 의 일부를 지원하지 않습니다 . 가 finally필요 이제까지? 코드가 항상 실행되기 때문에 절 없이 블록 뒤에 해당 코드를 배치하지 않는 이유는 무엇입니까? 왜 하나를 사용합니까? try ... catchfinally(나는 finally'catch'를 버릴 이유가 아닌 이유를 사용하거나 사용하지 …

3
서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까?
dao, 서비스 및 컨트롤러의 세 가지 계층 Spring 웹 앱이 있습니다. 컨트롤러는 dao를 직접 호출하지 않으며 서비스 계층을 통해 수행합니다. 현재 대부분의 경우 처리되지 않은 dao 예외 (런타임)가 있으면 최종 사용자에게 오류 메시지를 표시하는 JSP에 의해 포착됩니다. 서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까? try { daoInstance.someDaoMethod(); } …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.