5

tôi nhận được lỗi này:Cách bắt DOMException trong Chrome?

Uncaught (in promise) DOMException: lockOrientation() is not available on this device. 
    code: 9 
    message: "lockOrientation() is not available on this device." 
    name: "NotSupportedError" 

khi tôi chạy đoạn mã sau trong Chrome:

try { 
    screen.orientation.lock('portrait'); 
} catch (error) { 
    // whatever 
} 

Thực tế là các lỗi được ném dự kiến, kể từ Desktop Chrome không hỗ trợ định hướng khóa . Tôi muốn bắt lỗi vì vậy nó không xả rác giao diện điều khiển, nhưng gói nó trong một khối try...catch dường như không hoạt động.

Tại sao tôi không thể xem? Tui bỏ lỡ điều gì vậy?

Trả lời

10

try/catch không hoạt động tại đây, bởi vì screen.orientation.lock('portrait'); thực sự trả về một Promise đang ném lỗi. Phần này của lỗi cho thấy ngoại lệ được đưa ra trong lời hứa.

Uncaught (in promise) DOMException: lockOrientation() is not available on this device.

Để xử lý ngoại lệ, bạn có thể đính kèm cuộc gọi lại catch.

screen.orientation.lock('portrait').catch(function() { 
    // whatever 
}); 
+1

Đó là những gì tôi cần, cảm ơn! Vì các triển khai khác trả về true/false và Chrome trả về một lời hứa, tôi đã viết một ý chính về cách kết hợp các triển khai khác nhau thành một hàm. https://gist.github.com/jacksenechal/67315945593d452407ff –

Các vấn đề liên quan