Threaded View

  1. #1
    Ext JS Premium Member cdomigan's Avatar
    Join Date
    Mar 2007
    Posts
    148
    Vote Rating
    1
    cdomigan is on a distinguished road

      0  

    Default Answered: metachange exception handling

    Answered: metachange exception handling


    I can't seem to see errors thrown within a metachange listener.

    Code:
    metachange: function(store, meta) {		
    	throw "META ERROR"; // No error thrown! Execution just stops.
    }
    Other async events ('load', etc) are throwing errors just fine in their listeners.
    -->

  2. Ah! Now I understand what you mean. Then one of the solutions to escape the try/catch block is to override the getResponseData().
    Code:
    Ext.define('Override.data.reader.Json', {
        override: 'Ext.data.reader.Json',
        getResponseData: function(response) {
            var data, error;
     
            try {
                data = Ext.decode(response.responseText);
                //return this.readRecords(data);
            } catch (ex) {
                error = new Ext.data.ResultSet({
                    total  : 0,
                    count  : 0,
                    records: [],
                    success: false,
                    message: ex.message
                });
                this.fireEvent('exception', this, response, error);
                Ext.Logger.warn('Unable to parse the JSON returned by the server');
                return error;
            }
            return this.readRecords(data);
        }
    }

Thread Participants: 1