Wrap independent features in separate try/catch blocks. If one feature fails, others keep working.
function initApp() {
try { initAnalytics(); }
catch (e) { console.warn("Analytics failed"); }
try { initChat(); }
catch (e) { console.warn("Chat failed"); }
// Core features
initAuth();
initUI();
}
Non-critical failures shouldn't break critical features.