Angular2 ExceptionHandler-오류 개체가 응답인지 확인

Andy-Delosdos

현재 예외를 처리하기 위해 다음 코드를 사용하고 있습니다.

@Injectable()
export class CustomExceptionHandler extends ExceptionHandler {
call(error, stackTrace = null, reason = null) {
    console.warn(error);
}

코드가 잘 작동하고 콘솔에서 오류를 볼 수 있습니다. 오류는 @ angular / core에 정의 된 Response 객체입니다. 그러나 오류 매개 변수는 'any'입니다. 오류 유형 (예 : error : Response)을 변경할 수 없습니다. 반드시 Response 객체가 아니기 때문에 무엇이든 될 수 있습니다.

(error instanceof Response)를 사용하고 싶었지만 오류는 일종의 객체이기 때문에 작동하지 않습니다.

최신 정보

(error instanceof Response)결국 작동 하는 것으로 밝혀졌습니다 . 어떤 이유로 VS Code를 사용하여 typescript를 디버깅 할 때 작동하지 않는 것 같습니다. 나는 시계를 달았고 항상 거짓을 반환했습니다. 런타임에 확인하지 않기 때문일 수도 있습니다.

어쨌든 중요한 것은 Angular2 Response 객체의 컨텍스트 instanceof에서 생성자가있는 것처럼 잘 작동한다는 것입니다.

문제의 범위를 좁히고 객체 유형을 확인하는 다른 방법을 제공 한 @DanSimon에게 감사드립니다!

그리고 사이먼

흥미로운 질문입니다. TypeScript는 실제로 JS로 컴파일하기 때문에 클래스가 실제로 존재하지 않습니다. 확인할 수있는 두 가지 방법을 생각할 수 있습니다. "User-Defined Type Guard"를 사용하거나 "instanceof type guard"를 사용할 수 있습니다. 사용자 정의 유형 가드는 유형을 결정하기 위해 객체의 속성 / 기능을 확인하는 멋진 방법 일뿐입니다. 이점은 TS가 "속성 / 기능 누락"에 대해 불평하지 않는다는 것입니다. "instanceof"를 사용하면 두 Object의 생성자를 비교할 때 Object에 생성자가있는 경우에만 작동합니다. 따라서 Object에 생성자가 없으면 안됩니다. 이 두 가지에 대한 문서는 여기에서 찾을 수 있습니다 .

나는 또한 그들이 어떻게 작동하는지 보여주는 플 런커를 만들었다 . 결과가 콘솔에로드되므로 브라우저 디버그 도구를 사용하여 결과를 확인하세요. 모든 작업은 "ngOnChanges"함수의 "app / child.component.ts"에서 수행됩니다.

ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {
  console.log();
  console.log("Custom function isSimpleChange:", this.isSimpleChange(changes));
  console.log("Using instanceof SimpleChange:", (changes instanceof SimpleChange));
  console.log("Using Object.prototype.toString.call():", Object.prototype.toString.call(changes));
  console.log("Logging the object itself:",changes);
  console.log("-----------------------------------------------------------------------------------------");
  let testExample = new ExampleObject();
  console.log("Custom function isExampleObject:", this.isExampleObject(testExample));
  console.log("Using instanceof ExampleObject:", (testExample instanceof ExampleObject));
  console.log("Using Object.prototype.toString.call():" + Object.prototype.toString.call(testExample));
  console.log(testExample);


  this._result = changes.value.currentValue;
  this._changes++;
}

객체의 완전한 검사를 수행하려면 기본 유형에 대해 "typeof"를 모두 활용해야 할 것입니다. 따라서 "typeof"를 사용하여 기본 유형 "string", "number", "boolean"을 확인합니다. 그런 다음 "instanceof"를 사용하여 생성자가 일치하는지 확인하고 마지막으로 "사용자 정의 유형 보호"를 사용하여 특정 "속성 / 함수"를 찾습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

응답시 개체 참조가 개체 오류의 인스턴스로 설정되지 않았습니다.

분류에서Dev

Angular2 ExceptionHandler가 작동하지 않습니다.

분류에서Dev

컨트롤러에 404 응답 오류가 있는지 확인하십시오-Laravel 5

분류에서Dev

로그인 후 Django 나머지 프레임 워크 / Angular2 버그에서 단일 개체 가져 오기

분류에서Dev

웹 사이트가 응답하는 데 너무 오래 걸리는지 확인

분류에서Dev

웹 사이트가 응답하는 데 너무 오래 걸리는지 확인

분류에서Dev

Angular2 오류 응답 없음

분류에서Dev

angular2 매핑 오류 응답

분류에서Dev

개체가 System.Generic.List <T>인지 확인하십시오.

분류에서Dev

오류 확인

분류에서Dev

응답의 매개 변수에서 두 가지 유형을 확인하십시오.

분류에서Dev

응답 데이터가 오류 메시지 인 경우 REST 응답에 어떤 응답 코드를 사용해야합니까?

분류에서Dev

오류 : "NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다."Unity의 한 개체에있는 2 개의 스크립트

분류에서Dev

Angular2 : 인라인 템플릿 오류

분류에서Dev

Angular 2 확인란 params.setValue가 함수 오류가 아닙니까?

분류에서Dev

다른 지원 개체를 찾을 수 없습니다 오류 Angular2

분류에서Dev

Firebase listAll return error '알 수없는 오류가 발생했습니다. 서버 응답을 확인하십시오.'

분류에서Dev

탭 Angular2에 대한 클래스 확인 및 추가

분류에서Dev

Java.lang.NullPointerException 오류입니다. null 개체 확인

분류에서Dev

오류 : 개체 참조가 개체 오류의 인스턴스로 설정되지 않았습니다.

분류에서Dev

Ajax 호출의 HTML 응답에 클래스 또는 ID가 있는지 확인하십시오.

분류에서Dev

지정된 인덱스 개체를 가져 오는 동안 오류가 발생

분류에서Dev

NSDate 개체가 과거인지 확인

분류에서Dev

Ionic2 / Angular2 : 쿼리 페이지에 JSON 응답 표시 오류

분류에서Dev

OrientDB 확인 오류

분류에서Dev

DB 테이블에서 값을 확인할 때 개체 참조가 개체 오류의 인스턴스로 설정되지 않음

분류에서Dev

두 세트의 숫자가 동일한 오류인지 확인

분류에서Dev

보류중인 응답하지 : ConsumerRecord

분류에서Dev

Angular2 오류 : Angular2.0.0-beta.7 대신 SimpleChange (core OnChanges 인터페이스)

Related 관련 기사

  1. 1

    응답시 개체 참조가 개체 오류의 인스턴스로 설정되지 않았습니다.

  2. 2

    Angular2 ExceptionHandler가 작동하지 않습니다.

  3. 3

    컨트롤러에 404 응답 오류가 있는지 확인하십시오-Laravel 5

  4. 4

    로그인 후 Django 나머지 프레임 워크 / Angular2 버그에서 단일 개체 가져 오기

  5. 5

    웹 사이트가 응답하는 데 너무 오래 걸리는지 확인

  6. 6

    웹 사이트가 응답하는 데 너무 오래 걸리는지 확인

  7. 7

    Angular2 오류 응답 없음

  8. 8

    angular2 매핑 오류 응답

  9. 9

    개체가 System.Generic.List <T>인지 확인하십시오.

  10. 10

    오류 확인

  11. 11

    응답의 매개 변수에서 두 가지 유형을 확인하십시오.

  12. 12

    응답 데이터가 오류 메시지 인 경우 REST 응답에 어떤 응답 코드를 사용해야합니까?

  13. 13

    오류 : "NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다."Unity의 한 개체에있는 2 개의 스크립트

  14. 14

    Angular2 : 인라인 템플릿 오류

  15. 15

    Angular 2 확인란 params.setValue가 함수 오류가 아닙니까?

  16. 16

    다른 지원 개체를 찾을 수 없습니다 오류 Angular2

  17. 17

    Firebase listAll return error '알 수없는 오류가 발생했습니다. 서버 응답을 확인하십시오.'

  18. 18

    탭 Angular2에 대한 클래스 확인 및 추가

  19. 19

    Java.lang.NullPointerException 오류입니다. null 개체 확인

  20. 20

    오류 : 개체 참조가 개체 오류의 인스턴스로 설정되지 않았습니다.

  21. 21

    Ajax 호출의 HTML 응답에 클래스 또는 ID가 있는지 확인하십시오.

  22. 22

    지정된 인덱스 개체를 가져 오는 동안 오류가 발생

  23. 23

    NSDate 개체가 과거인지 확인

  24. 24

    Ionic2 / Angular2 : 쿼리 페이지에 JSON 응답 표시 오류

  25. 25

    OrientDB 확인 오류

  26. 26

    DB 테이블에서 값을 확인할 때 개체 참조가 개체 오류의 인스턴스로 설정되지 않음

  27. 27

    두 세트의 숫자가 동일한 오류인지 확인

  28. 28

    보류중인 응답하지 : ConsumerRecord

  29. 29

    Angular2 오류 : Angular2.0.0-beta.7 대신 SimpleChange (core OnChanges 인터페이스)

뜨겁다태그

보관