Try/Catch not actually catching the exception

Good afternoon,
I’m locally running Katalon 6.2 on a mac locally and I am also running it in a docker container on our test executing system (I noticed that 6.3 is now available and will make sure our code all works before updating)

The issue that i’m having is that inside a custom keyword I am trying to catch an exception.
We have a situation where ‘sometimes’ a javascript alert is thrown, so I am trying to write code to check to see if it is there, if it is there compare the text. If it is not there to just continue. Here is the code I am executing.

	try {
		if(WebUI.verifyAlertPresent(1, FailureHandling.CONTINUE_ON_FAILURE)) {
			Verify.verifyEqual(WebUI.getAlertText().trim(), MODIFIED_ALERT_TEXT)
			WebUI.acceptAlert()
			
		}
	} catch (Exception e) {
	Log.i(e.toString())
	}

However this is the exception that is being thrown:
09-25-2019 11:44:22 AM Test Cases/Actions/AddPay/OneTime/TestOneTime
Elapsed time: 3m - 14.703s

aurora.common.WorkflowUtil.submitAndCheckAlert:48

Test Cases/Actions/AddPay/OneTime/TestOneTime FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: No alert found after 1 second(s). (Root cause: com.kms.katalon.core.exception.StepFailedException: No alert found after 1 second(s).
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword$_verifyAlertPresent_closure1.doCall(VerifyAlertPresentKeyword.groovy:79)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword$_verifyAlertPresent_closure1.call(VerifyAlertPresentKeyword.groovy)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:20)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword.verifyAlertPresent(VerifyAlertPresentKeyword.groovy:72)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword.execute(VerifyAlertPresentKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:56)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.verifyAlertPresent(WebUiBuiltInKeywords.groovy:1617)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$verifyAlertPresent$30.call(Unknown Source)
	at aurora.common.WorkflowUtil.submitAndCheckAlert(WorkflowUtil.groovy:48)
	at aurora.common.WorkflowUtil$submitAndCheckAlert.call(Unknown Source)
	at TestOneTime.run(TestOneTime:72)
	at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
	at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
	at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1569426260896.run(TempTestCase1569426260896.groovy:21)
)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:39)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword$_verifyAlertPresent_closure1.doCall(VerifyAlertPresentKeyword.groovy:79)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword$_verifyAlertPresent_closure1.call(VerifyAlertPresentKeyword.groovy)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:20)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword.verifyAlertPresent(VerifyAlertPresentKeyword.groovy:72)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyAlertPresentKeyword.execute(VerifyAlertPresentKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:56)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.verifyAlertPresent(WebUiBuiltInKeywords.groovy:1617)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$verifyAlertPresent$30.call(Unknown Source)
	at aurora.common.WorkflowUtil.submitAndCheckAlert(WorkflowUtil.groovy:48)
	at aurora.common.WorkflowUtil$submitAndCheckAlert.call(Unknown Source)
	at TestOneTime.run(TestOneTime:72)
	at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
	at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
	at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1569426260896.run(TempTestCase1569426260896.groovy:21)
Caused by: com.kms.katalon.core.exception.StepFailedException: No alert found after 1 second(s).
	... 23 more

If I have the call to verifyAlertPresent wrapped in a try catch block AND FailureHandling.CONTINUE_ON_FAILURE set why is it throwing an exception?

Has anyone else run into issues catching exceptions in custom keywords?

I have no idea. This is how I approach this:

    WebUI.waitForAlert(TIMEOUT_SECONDS)
    String text = WebUI.getAlertText()
    // compare the text here ...

Obviously, set a reasonable value for TIMEOUT_SECONDS.