'How do I check which error occurred in getUserMedia()?

I'm trying to check if a user has a camera.

The MediaDevices.getUserMedia() documentation says that there are 2 possible errors: SecurityError and NotFoundError

Is there a way to detect which one of the two occurred, and do separate things for each one?

navigator.mediaDevices.getUserMedia({
   video: true
})
.then(function() {
   //do something
})
.catch(function(error) {
   //if error = security error, do something
   //if error = camera not found, do something else
});

EDIT

Probably not the best way but it works for me:

navigator.mediaDevices.getUserMedia({
            video: true
          })
          .then(function() {
            //do stuff
           })
          .catch(function(error) {
            if(error.message.includes("Requested device not found")) //do stuff
            else if(error.message.includes("Permission denied")) //do other stuff
          });



Solution 1:[1]

I think it is not true way but it can works.

if(error.includes("something from security error message"){
 //do something about security
} else if(error.includes("something from camera error message"){
 //do something about camera
}

Errors can be a different types (object, string). First we should look our error.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1