try...catch 是 JavaScript 中用于异常处理的关键字,它的基本用法是尝试执行可能会抛出异常的代码块,如果有异常被抛出,就会进入 catch 块来处理异常。以下是一些 try...catch 使用的小技巧:
try...catch
catch
多重 catch 块:
try { // 可能会抛出异常的代码 } catch (error) { if (error instanceof TypeError) { // 处理类型错误 } else if (error instanceof RangeError) { // 处理范围错误 } else { // 处理其他错误 } }
使用多重 catch 块可以根据不同类型的异常执行不同的处理逻辑。
finally 块:
finally
try { // 可能会抛出异常的代码 } catch (error) { // 处理异常 } finally { // 无论是否发生异常都会执行的代码 }
finally 块中的代码在 try 块中的代码执行完毕后总是会被执行,无论是否发生异常。
try
捕获异步异常:
async function fetchData() { try { const response = await fetch('https://example.com/data'); const data = await response.json(); console.log(data); } catch (error) { console.error('Error fetching data:', error); } }
在异步函数中使用 try...catch 可以捕获异步操作中的异常。
自定义错误对象:
class CustomError extends Error { constructor(message) { super(message); this.name = 'CustomError'; } } try { throw new CustomError('This is a custom error'); } catch (error) { if (error instanceof CustomError) { console.error('Caught custom error:', error.message); } else { console.error('Caught other error:', error.message); } }
自定义错误对象可以帮助你更好地识别和处理特定类型的异常。
throw 语句:
throw
try { if (someCondition) { throw new Error('This is an error'); } // 其他代码 } catch (error) { console.error('Caught error:', error.message); }
使用 throw 语句主动抛出异常,以便在 catch 块中进行处理。
全局错误处理:
window.onerror = function (message, source, lineno, colno, error) { console.error('Global error handler:', message, source, lineno, colno, error); };
在全局设置错误处理器,可以捕获整个应用中未被处理的异常。
这些小技巧可以帮助你更灵活地使用 try...catch 进行异常处理,提高代码的健壮性和可维护性。
原文链接:codingdict.net