I just recently had one of my sites go down for about a day, and I didn't notice. The problem was a simple fix that took about 2 minutes to fix, but I since I didn't have a system in place to get an instant notification that there was an error, it was down for way longer than it should have been. What are some ways to get instant notification (preferably email), when my site has a major error? It it something I can do site wide, or do I have to put try-catches around everything?
It depends on your setup. If you are running, for example, an Apache Web server - then you can probably write a shell script to tell you if this goes down. If you would like to know when your application crashes - then proper error logging is needed. When you log these errors notify yourself with an email. You are write, its likely to be something you have to do with your code.
You can use a service like Pingdom that will alert you via email and SMS if your site content changes (e.g. your site shows "database error" or "parse error" on the source code when it should never appear)