Problem Statement: I struggled almost for a week to fix exception handling in ExtJS. The problem is when I make an AJAX call or make any asynchronous server side call, I was not able to read exact exception message thrown by server. I saw different ways to implement exception listeners in ExtJS but most of them didn't work for me.
Problem Solution: This is what I am using to handle exceptions in ExtJS.
Note the syntax for defining exception block, the function signature is important. I have seen different signatures for this function but this is the one that worked for me.
Problem Solution: This is what I am using to handle exceptions in ExtJS.
var reportProxy = new Ext.data.HttpProxy({
url : 'myReportURL', // web URL
method : 'post', // HTTP method
timeout : 180000, // request timeout
listeners : { // configure listener
exception : function(proxy, type, action, options,
response, arg) {
// this block is reached on any exception
if (!response.isTimeout) {
// check if response didn't timed out
Ext.Msg.show({
title : '',
msg : "Oops !! There is some Internal Server Error.",
buttons : Ext.Msg.OK,
icon : Ext.MessageBox.INFO
});
} else {
// this block is called on response timeout
Ext.Msg.show({
title : '',
msg : "Its taking too long. Response timed out.",
buttons : Ext.Msg.OK,
icon : Ext.MessageBox.INFO
});
}
}
}
});
Note the syntax for defining exception block, the function signature is important. I have seen different signatures for this function but this is the one that worked for me.