keywords: icon, logo, fa
FontAwesome 正式釋出第五版,在 FontAwesome 5 中,除了主色系從綠色變成藍色之外,究竟第 5 版中還多了哪些新功能呢?讓我們用 5 分鐘快速了解 FontAwesome 5 帶來什麼新功能吧!
圖片來源:Proper Error Handling in JavaScript @ Scotch |
var error = new Error("error message"); console.log(error) // Error: error message
var pi = 3.14159; pi.toFixed(100000); // RangeError: toFixed() digits argument must be between 0 and 100
console.log(bar); // ReferenceError: bar is not defined
if (false) { // SyntaxError: Unexpected token (3:0) // 缺少結束的大括號
/** * 由於 foo 當中並不包含 bar 這個函式,因此會拋出 TypeError 錯誤 **/ var foo = {}; foo.bar(); // TypeError: foo.bar is not a function
/** * "%" 表示的是 URI 中的跳脫片段,但在下面的例子中 "%" 後沒有接任和字串,因此是不合法的跳脫片段 **/ decodeURIComponent("%"); // URIError: URI malformed
try { // attempt to execute this code } catch (exception) { // this code handles exceptions } finally { // this code always gets executed }
try { foo++; // ReferenceError } catch (exception) { // ReferenceError: foo is not defined console.log(`${exception.name}: ${exception.message}`) }
function f() { try { console.log(0); throw 'bogus'; // 進入 catch } catch(e) { console.log(1); return true; // 這個回傳值會被終止,直到整個 finally block 完成之後 console.log(2); // 執行不到 } finally { console.log(3); return false; // finally 中的 return 會覆蓋掉 try/catch 中的 return 或 throw console.log(4); // 執行不到 } // 執行 finally 中的 "return false" console.log(5); // 執行不到 } f(); // 0, 1, 3; returns false
throw expression;
let denominator = 0 // RangeError: Attempted division by zero! try { if (denominator === 0) { throw new RangeError("Attempted division by zero!"); } } catch (e) { console.log(e.name + ': ' + e.message) }
/** * 客製化錯誤類型 **/ function DivisionByZeroError(message) { this.name = 'DivisionByZeroError'; this.message = message; } // 繼承 Error 物件 DivisionByZeroError.prototype = new Error(); DivisionByZeroError.prototype.constructor = DivisionByZeroError; // 建立 showError 的方法 DivisionByZeroError.prototype.showError = function() { return this.name + ': "' + this.message + '"'; }
let denominator = 0 try { if (denominator === 0) { throw new DivisionByZeroError("Attempted division by zero!"); } } catch (e) { console.log(e.showError()) // DivisionByZeroError: "Attempted division by zero!" }
try { // assume an exception occurs } catch (exception) { if (exception instanceof TypeError) { // Handle TypeError exceptions } else if (exception instanceof ReferenceError) { // Handle ReferenceError exceptions } else { // Handle all other types of exceptions } }