這可能有點難以遵循。JavaScript異常/錯誤處理不工作
我已經有了對象內的函數:
f_openFRHandler: function(input) {
console.debug('f_openFRHandler');
try{
//throw 'foo';
DragDrop.FileChanged(input);
//foxyface.window.close();
}
catch(e){
console.error(e);
jQuery('#foxyface_open_errors').append('<div>Max local storage limit reached, unable to store new images in your browser. Please remove some images and try again.</div>');
}
},
try塊調用內:
this.FileChanged = function(input) {
// FileUploadManager.addFileInput(input);
console.debug(input);
var files = input.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
if (!file.type.match(/image.*/)) continue;
var reader = new FileReader();
reader.onload = (function(f, isLast) {
return function(e) {
if (files.length == 1) {
LocalStorageManager.addImage(f.name, e.target.result, false, true);
LocalStorageManager.loadCurrentImage();
//foxyface.window.close();
}
else {
FileUploadManager.addFileData(f, e.target.result); // add multiple files to list
if (isLast) setTimeout(function() { LocalStorageManager.loadCurrentImage() },100);
}
};
})(file, i == files.length - 1);
reader.readAsDataURL(file);
}
return true;
LocalStorageManager.addImage電話:
this.setItem = function(data){
localStorage.setItem('ImageStore', $.json_encode(data));
}
localStorage.setItem如果使用了太多的本地存儲,則會引發錯誤。我想在f_openFRHandler(第一個代碼示例)中捕獲該錯誤,但是它將被髮送到錯誤控制檯而不是catch塊。我嘗試下面的代碼在我的Firebug的控制檯來確保我沒有瘋,它工作正常,儘管功能嵌套的許多層面:
try{
(function(){
(function(){
throw 'foo'
})()
})()
}
catch(e){
console.debug(e)
}
任何想法?
這是一個很好的例子,它提出了一個關於複雜情況的簡潔問題。好一個。 – 2010-06-15 08:03:18
啊,我應該看到的。謝謝你們的幫助。 – 2010-06-16 02:38:09
án:如果以下答案之一幫助您解決了問題,請點擊答案頂部左邊的複選標記以接受其中一個答案。這標誌着「回答」的問題。 (http://stackoverflow.com/faq) – 2010-06-16 09:14:07