2013-04-10 2 views
2

내가 nodejs에서 오류 처리에 대해 읽고 있어요,이 문서를 읽는 동안 나는 불안 뭔가 건너 온 : 자바 스크립트의 작품을 던지는 방법의 성격 상 "javascript/nodejs에서 예외를 던지고 있습니까?

http://nodejs.org/api/domain.html

그것은 말한다을, 거기에 거의 결코 참조를 누설하거나 정의되지 않은 취성 상태의 다른 종류를 만들지 않고도 "중단 한 부분부터 안전하게"픽업 할 수 있습니다. "

이것은 끔찍하게 들립니다. 예외를 던질 때마다 스레드를 종료해야한다고 말하는 것입니까? 내가 뭔가를 여기에서 놓치고있는 것처럼 느껴진다.

+0

개발자 오류 인 경우 throw됩니다. 그렇지 않으면 콜백 또는 이미 터를 통해 전달하십시오. –

+1

[Node.js에서 예외로 인해 리소스가 누출되는 이유는 무엇입니까?] (http://stackoverflow.com/questions/15825752/why-would-an-exception-cause-resource-leaks-in-node-js)) –

+0

실제로 감사합니다. 아사드. 복제본이기 때문에이 질문으로 무엇을해야합니까? –

답변

2

적절한 상황에서 예외를 던지면 아무런 문제가 없습니다. 그것은 유용한 도구이며 그렇게 사용할 수 있습니다. 예외는 일반적으로 정상적이고 예상되는 빈번하게 사용되는 코드 경로가 느리며 정상적인 반환 값보다 훨씬 느리기 때문에 일반적으로 올바른 도구가 아닙니다. 성능이 중요한 경우 이러한 유형의 상황에 대해 반환 값을 사용하는 것이 일반적입니다.

그러나 예외는 예기치 않은 오류 조건 또는 비정상적인 조건에 대해 코드를 크게 단순화 할 수 있으며 자바 스크립트와 같은 메모리 관리 언어에서 일반적으로 예외를 throw 할 때 메모리 누수에 대해 걱정할 필요가 없습니다 예외를 throw 할 때 영구 전역 상태를 조작하는 중입니다. 모든 지역 변수와 참조는 범위를 벗어나면 예외가 발생할 때 정리됩니다.

오류 상태를 나타내는 다른 방법과 코드가 잘못 작성되지 않으면 예외로 인해 메모리 누수가 발생하거나 취성 상태가되지 않습니다.

+0

"누설 참조"는 "누출 메모리"와 다릅니다. –

+0

@Asad - "누출 참조"는 무엇입니까? – jfriend00

+0

변수를 액세스 할 의도가없는 범위로 가져 오는 것은 가능하다고 생각합니다. –

관련 문제