Errors such as
if not caused by incorrect session timeout (Configure the timeout settings) or IIS configuration (Session does not exist), you can capture and show the error in a more friendly way, such as in a message box.
For example, in the Application object -> System Error event
Choose Case error.Number
Case 220 to 229 //Session Error
MessageBox ("Session Error", "Number:" + String(error.Number) + "~r~nText:" + error.Text )
Case 230 to 239 //License Error
MessageBox ("License Error", "Number:" + String(error.Number) + "~r~nText:" + error.Text )
Case 240 to 249 //Token Error
MessageBox ("Token Error", "Number:" + String(error.Number) + "~r~nText:" + error.Text )
Case Else
MessageBox ("SystemError", "Number:" + String(error.Number) + "~r~nText:" + error.Text )
End ChooseYou can also replace the default message with your own message for each error. For more details about PowerServer Error Numbers, refer to Runtime error numbers.
For example:
Choose Case error.Number
Case 224, 225 // Session fails to respond (Session does not exist/Session timed out).
MessageBox ("Session Error", "Number:" + String(error.Number) + "~r~nText:" + "Since the application has not been operated for a long time, please restart the application to continue using the application.")
…
End ChooseFor each specific type of error, developers can implement proactive approaches and solutions. For example, in a situation where an error occurs due to the primary server not functioning, developers can utilize the SetPowerServerURL and BeginSession functions to smoothly transition to a backup server, so after the end user restarts the application they can continue using the application (thereby indirectly implementing the server failover functionality). Here is a code example:
String ls_new_url
Boolean lb_has_error
Try
GetApplication().BeginSession()
Catch (runtimeerror er)
// BeginSession failed if the primary server is down.
lb_has_error = true
Messagebox("BeginSession Failed", "It will try another service.")
End Try
If lb_has_error Then // It will try the backup server.
// Change to the backup Web API URL.
ls_new_url = "https://www.example.com/salesapibackup"
GetApplication().SetPowerServerURL(ls_new_url)
GetApplication().BeginSession()
End If


