Help with try/catch block

Abhijit Das7
Tera Expert

Hi Everyone,

 

I have to use try/catch block for error handling. How can I apply it for below code.

var propertiesArray = ["propertyName1", "propertyName2", "propertyName3", "propertyName4", "propertyName5", "propertyName6" ]

for (var b = 0; b < propertiesArray.length; b++) {
    var sysProp = new GlideRecord("sys_properties");
    sysProp.addQuery("name", propertiesArray[b]);
    sysProp.query();
    if (sysProp.next()) {
            gs.info("Property name = " + propertiesArray[b]);
            if (propertiesArray[b] == 'propertyName1') {
                sysProp.value = "X1";
            }
            if (propertiesArray[b] == 'propertyName2') {
                sysProp.value = "X2";
            }
            if (propertiesArray[b] == 'propertyName3') {
                sysProp.value = "X3";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X4";
            }
            if (propertiesArray[b] == 'propertyName5') {
                sysProp.value = "X5";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X6";
            }
	        sysProp.update();
    }
}

 

Thanks in advance

1 REPLY 1

Robbie
Kilo Patron
Kilo Patron

Hi @Abhijit Das7,

 

The try catch block should be placed outside of the for loop. The reason being if the try catch block was placed inside the for loop and an error occurs, it will immediately jump to the catch block, skipping any remaining iterations of the propertiesArray.

 

Using your code below:

var propertiesArray = ["propertyName1", "propertyName2", "propertyName3", "propertyName4", "propertyName5", "propertyName6" ]

try{
   for (var b = 0; b < propertiesArray.length; b++) {
       var sysProp = new GlideRecord("sys_properties");
       sysProp.addQuery("name", propertiesArray[b]);
       sysProp.query();
       if (sysProp.next()) {
            gs.info("Property name = " + propertiesArray[b]);
            if (propertiesArray[b] == 'propertyName1') {
                sysProp.value = "X1";
            }
            if (propertiesArray[b] == 'propertyName2') {
                sysProp.value = "X2";
            }
            if (propertiesArray[b] == 'propertyName3') {
                sysProp.value = "X3";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X4";
            }
            if (propertiesArray[b] == 'propertyName5') {
                sysProp.value = "X5";
            }
            if (propertiesArray[b] == 'propertyName4') {
                sysProp.value = "X6";
            }
	        sysProp.update();
       } 
   }
}
catch(e){
	gs.log('Exception thrown in Script: NameGoesHere. Error: ' + e);
}

 

To help others (or for me to help you more directly), please mark this response correct by clicking on Accept as Solution and/or Kudos.




Thanks, Robbie