Onsen-UI上でオーバーライドした$exceptionHandlerが実行されない
お世話になります
onsen-ui+angularJSを使用してアプリケーションを作成したところ、オーバーライドしたAngularJSの$exceptionHandlerが実行されたり、されなかったりするという現象が発生しました。
いろいろ調べたのですが、法則性が見つからず原因が特定できません。
代表的なものとして、通常の例外は$exceptionHandlerがキャッチしてくれるのですが、
ons.ready内で発生した例外は$exceptionHandlerでキャッチしてくれません。
// オーバーライドした$exceptionHandler
(function () {
"use strict";
angular.module('App')
.factory('$exceptionHandler', ['$window', function ($window) {
return function (exception) {
$window.alert(exception);
};
}]);
}());
// オーバーライドした$exceptionHandlerがキャッチしてくれるケース
angular.module('App').controller(
'ExceptionController', ['$scope', function ($scope) {
throw new Error("ErrorTest");
}]);
// オーバーライドした$exceptionHandlerがキャッチしてくれないケース
angular.module('App').controller(
'ExceptionController', ['$scope', function ($scope) {
ons.ready(function () {
throw new Error("ErrorTest");
});
}]);
このほかにも、ons-navigatorタグで指定したng-controllerのコントローラー内で発生した例外はオーバーライドした$exceptionHandlerがキャッチしてくれますが、ons-pageタグで指定したng-controllerのコントローラー内で発生した例外はキャッチしてくれないなどのケースがあります。
原因をご存知の方がおられたらご教授のほどよろしくお願いします。