Server-side debugging can consist of debugging server-side scripts and other behavior, as well as performance and security issues. Debugging server-side scripts can often be slightly more difficult, as the exact source of the undesired behavior is not necessarily logged or thrown as an error message visible on the client. Instead, you must search through the logs for thrown errors and sometimes use trial-and-error and custom log messages to determine the exact source of the issue. For this reason, using try/catch() blocks in your server-side code can be a good idea. This is also true of client-side code in fact, but it is especially important with server-side code.
While try/catch() blocks are a great way to build in error-handling behavior, it should not be relied upon to control the flow of your code. They should only be used when the catch block can handle the error in some sensible...