2015-09-09 5 views
7

कोणीय में अपवाद कंसोल में डिफ़ॉल्ट रूप से लॉग इन हैं। मैंने सुना है कि हम कोणीय अपवाद हैंडलर का उत्तराधिकारी बना सकते हैं और अपना अपवाद हैंडलर बना सकते हैं ताकि हम डिफ़ॉल्ट व्यवहार को ओवरराइड कर सकें। मैंने ऐसा करने की कोशिश की लेकिन काम नहीं किया। क्या कोई इस पर उदाहरण के साथ मेरी मदद कर सकता है। अग्रिम धन्यवाद ....कोणीय 2 में कस्टम अपवाद हैंडलर

+0

इस http://stackoverflow.com/questions/32980405/module-angular2-angular2-has-no-exported-member-exceptionhandler – Gustavo

उत्तर

13

में काम करता है संस्करण 2.0.1 के रूप में है, एक कस्टम त्रुटि हैंडलर बनाने की वर्तमान रास्ता @angular/core में पाया ErrorHandler इंटरफेस है।

डॉक्स से

:

https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.html

import { NgModule, ErrorHandler } from '@angular/core'; 

class MyErrorHandler implements ErrorHandler { 
    handleError(error) { 
    // do something with the exception 
    } 
} 
@NgModule({ 
    providers: [{ provide: ErrorHandler, useClass: MyErrorHandler }] 
}) 
class MyModule {} 

जब जड़ मॉड्यूल पर इस लागू करने, सभी बच्चों मॉड्यूल एक ही त्रुटि हैंडलर (जब तक वे अपने प्रदाता सूची में निर्दिष्ट एक और एक है) प्राप्त होगा।

+3

जहां मैं यह myErrorHandler कक्षा जोड़ता हूं? –

+1

क्या आप इसे स्पष्ट रूप से समझा सकते हैं? –

5

ऐसा लगता है कि आप अपने खुद के वर्ग अपवाद को संभालने के लिए कुछ इस तरह बनाने के लिए, और फिर बूटस्ट्रैप समय में अपने अनुप्रयोग में यह बाँध, की जरूरत है: पर

import {provide, ExceptionHandler} from '@angular/core'; 

class MyExceptionHandler implements ExceptionHandler { 
    call(error, stackTrace = null, reason = null) { 
     // do something with the exception 
    } 
} 

और फिर समय बूटस्ट्रैप, ExceptionHandler के रूप में इस नए कार्यान्वयन के लिए बाध्य:

bootstrap(MyApp, 
    [provide(ExceptionHandler, {useClass: MyExceptionHandler})]) 

संदर्भ के लिए here देखें।

Plunker example

+1

और केवल एक छोटी सी समस्या है: आप अपवाद हैंडलर कैसे प्राप्त कर रहे हैं?) – alexpods

+0

मैंने कस्टम अपवाद हैंडलर जोड़ने की कोशिश की लेकिन काम नहीं किया। किसी के पास एक कामकाजी उदाहरण है? –

+0

जब मैं कस्टम अपवाद हैंडलर के साथ प्रयास करता हूं तो मुझे अपवाद मिल रहा है - "MyExceptionHandler (?, Boolean) के लिए सभी पैरामीटर को हल नहीं कर सकता। सुनिश्चित करें कि उनके पास वैध प्रकार या एनोटेशन हैं।" –

0

यहाँ अपवाद संचालक है कि अल्फा .46

import {ExceptionHandler} from 'angular2/angular2'; 

export class ERISExceptionHandler extends ExceptionHandler { 

    call(error, stackTrace = null, reason = null) { 
     alert('error:' + error + ' stackTrace: ' + stackTrace + ' reason: ' + reason); 
    } 
} 
+0

सिवाय इसके कि यह 'super.call (त्रुटि, stackTrace, कारण)' की कोशिश कर रहा है। कस्टम अपवाद हैंडलर के साथ जाने वाले अच्छे कोणीय त्रुटि संदेशों को रखना बहुत अच्छा होगा। – Asido

संबंधित मुद्दे