¿Cómo arrojar un error al usar una propiedad de un objeto?

En este artículo, intentaremos comprender cómo podemos arrojar un error al usar una propiedad de un objeto con la ayuda de ciertas explicaciones teóricas y ejemplos de codificación en JavaScript.

Primero echemos un vistazo a la siguiente sección que muestra la sintaxis para crear un objeto que tenga ciertas propiedades y sus valores correspondientes en JavaScript.

Sintaxis:

let object_name = {
    property_name : value,
    ...
}

Ahora, echemos un vistazo rápido al siguiente ejemplo que muestra la creación de un objeto y también cómo acceder a cualquier propiedad de un objeto en JavaScript.

Ejemplo: En este ejemplo, crearemos un objeto que contendrá un par propiedad-valor simple junto con los pares propiedad-valor del objeto anidado, e intentaremos acceder a cualquier propiedad de él y mostrarla en la salida.

Javascript

<script>
    let employee_details = {
        name: "Aman",
        designation: "technical writer",
        age: 22,
        graduated: true,
        address: {
            street: "XYZ",
            place: "ABC",
            state: "PQR",
            pincode: 1122333,
        },
        skills: {
            coding: ["C", "C++", "Java"],
            frontEnd_BackEnd: ["HTML", "CSS", 
                "JavaScript", "React", "TypeScript"],
        },
    };
  
    console.log(employee_details);
  
    console.log(
        "Place where an employee lives is : " 
            + employee_details.address.place
    );
</script>

Producción:

{
  name: 'Aman',
  designation: 'technical writer',
  age: 22,
  graduated: true,
  address: { street: 'XYZ', place: 'ABC', 
      state: 'PQR', pincode: 1122333 },
  skills: {
    coding: [ 'C', 'C++', 'Java' ],
    frontEnd_BackEnd: [ 'HTML', 'CSS', 
        'JavaScript', 'React', 'TypeScript' ]
  }
}
Place where an employee lives is : ABC

Ahora echemos un vistazo a nuestra declaración de problema principal, que es cómo arrojar un error al usar una propiedad de un objeto con la ayuda de ciertos ejemplos que se muestran a continuación:

Ejemplo 1: 

  • En este ejemplo, primero crearemos un objeto vacío usando la sintaxis que se mostró en la sección anterior.
  • Después de crear un objeto vacío, usaremos el método Object.defineProperty() con la ayuda del cual definiremos una propiedad en el mismo objeto que creará una función que eliminará el error.
  • En otras palabras, usaremos ese método para definir ciertas propiedades en cualquier objeto creado hasta el momento y, además, definiremos cualquier función que realizará su trabajo cuando se acceda a esa propiedad de ese objeto.
  • Esto implica que esta propiedad no está definida y, por lo tanto, al usar esa función en la misma propiedad, generaremos o arrojaremos un error cada vez que se acceda a esa misma propiedad.
  • Más tarde, dentro del bloque try/catch, accederemos a la propiedad y luego capturaremos el error arrojado correspondiente de esa función dentro del bloque catch.

Javascript

<script>
    let employee_data = {};
    Object.defineProperty(employee_data, "name", {
        get: function () {
            throw new Error("Employee Data not found!");
        },
    });
  
    try {
        let data = employee_data.name;
        console.log(data);
    } catch (error) {
        console.log("Caught Error: " + error.message);
    }
</script>

Producción:

Caught Error: Employee Data not found!

Ejemplo 2: 

  • En este ejemplo, crearemos un objeto vacío como también lo hemos creado en el ejemplo anterior, pero aquí lo crearemos utilizando un Proxy que anulará la función getter para los métodos definidos por el usuario. 
  • Después de definir una función de obtención, que contiene el objeto de destino y su propiedad, arrojaremos un error dentro de esa función que mostrará que property_name pasado no se encuentra. 
  • Luego, usando los bloques try/catch, accederemos a las propiedades y detectaremos sus errores correspondientes en el propio bloque catch.

Javascript

<script>
    let employee_data = new Proxy(
        {},
        {
            get(object_name, property_name) {
                throw new Error(`${property_name} 
                    property not found!!..`);
            },
        }
    );
  
    try {
        let property_1 = employee_data.age;
        console.log(property_1);
    } catch (error) {
        console.log(error.message);
    }
  
    try {
        let property_1 = employee_data.name;
        console.log(property_1);
    } catch (error) {
        console.log(error.message);
    }
</script>

Producción:

age property not found!!..
name property not found!!..

Ejemplo 3: 

  • En este ejemplo, crearemos un objeto con ciertas propiedades y sus valores correspondientes (tanto en formato de string como de número).  
  • Luego, crearemos una función que aceptará dos parámetros, que son el nombre de la propiedad y el objeto de destino en sí.
  • A partir de entonces, comprobaremos si existe o no la propiedad correspondiente en el objeto pasado y, de acuerdo, devolveremos verdadero o falso. 
  • Más tarde, al usar ese valor de función devuelto, arrojaremos un error si la propiedad no se encuentra en ese objeto en sí y detectará el error en el bloque catch.

Javascript

<script>
    let employee_details = {
        name: "Aman",
        age: 22,
    };
  
    let checkProperty = (propertyName, object) => {
        return propertyName in object ? true : false;
    };
  
    try {
        if (checkProperty("address", employee_details) === false)
            throw new Error("Property not found..!!");
    } catch (error) {
        console.log("Caught Error: " + error.message);
    }
</script>

Producción:

Caught Error: Property not found..!!

Publicación traducida automáticamente

Artículo escrito por amansingla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *