Titanium Appcelerator - HTTPClient - onload - 自定义异常

时间:2014-10-12 18:35:50

标签: exception titanium httpclient appcelerator onload

我正在使用Titanium Studio(版本:3.4.0.201409261227),我试图在Ti.Network.HTTPClient的“onload”回调中捕获异常。

但那是不可能的,我得到了“应用程序错误”的“红色屏幕”,我无法捕捉到异常。

有人有想法吗?

try {
        var tiHTTPClient = Ti.Network.createHTTPClient({
            onload : function(e) {      
                throw 'EXCEPTION';              
            }
        });     
        tiHTTPClient.open( 'GET', 'http://www.google.com' );
        tiHTTPClient.send();
    }
    catch( e ) {
        alert( 'E: ' + e.message ); 
    }

在“onload”功能之外,可以通过以下方式轻松实现:

try {
    throw 'EXCEPTION';              
}
catch( e ) {
    alert( 'E: ' + e.message ); 
}

1 个答案:

答案 0 :(得分:0)

This might be the correct answer or at least the explanation

  顺便说一下,你尝试捕捉博客没有区别的原因是“调用”成功 - 它是一个异步调用,所以它只是立即返回控制,因此你通过try块直接传递没有任何问题。   块引用

一个解决方案可能是:

    var exceptionHandling = function( msg ) {
        alert( 'E: ' + msg );
    };

    var tiHTTPClient = Ti.Network.createHTTPClient({
        onload : function(e) {  
            exceptionHandling('EXCEPTION');              
        }
    });     
    tiHTTPClient.open( 'GET', 'http://www.google.com' );
    tiHTTPClient.send();