阿摩線上測驗 登入

申論題資訊

試卷:109年 - 109 關務特考_四等_資訊處理:程式設計概要#86495
科目:程式設計
年份:109年
排序:0

題組內容

二、請說明下列程式設計重要名詞的差異。(25 分)

申論題內容

(一)執行期錯誤(Runtime Error),語意錯誤(Semantic Error),語法錯誤(Syntax Error)

詳解 (共 1 筆)

詳解 提供者:hchungw
這三種錯誤都是程式設計時常見的問題,但它們各自代表了不同種類的問題:
語法錯誤(Syntax Error):
當程式碼違反了程式語言的規則和結構時發生,例如拼寫錯誤、錯誤的標點符號,或者錯誤地使用程式語言的元素(如遺漏分號、括號不匹配、錯誤使用關鍵字等)。
這種錯誤通常是最容易發現和修正的,因為大多數的編譯器或解釋器會在編譯或解釋程式碼之前指出這些問題的具體位置。
例子:在 C++ 中寫 int a = 5 卻遺漏了分號,應為 int a = 5;。
執行期錯誤(Runtime Error):
程式在運行時發生的錯誤,語法上可能完全正確,但在執行過程中發生了一些意外的事情,例如試圖除以零、訪問無效的記憶體地址、或者超出陣列邊界等。
執行期錯誤可能導致程式崩潰或產生不預期的行為。
例子:在執行時嘗試訪明訪問陣列中不存在的索引。
語意錯誤(Semantic Error):
程式碼在語法上是正確的,也能夠成功執行,但它並沒有按照開發者的預期來執行。這意味著程式碼的邏輯是錯誤的,或者算法沒有正確實現。
語意錯誤可能導致程式輸出錯誤的結果,但不會導致程式停止運行。
例子:寫一個函數來計算兩個數字的和,但是誤將加法(+)寫成了乘法(*)。
在軟體開發過程中,這些錯誤都需要通過不同的測試和調試策略來識別和修正。語法錯誤通常在編寫代碼時或通過編譯器進行檢查時就能發現。執行期錯誤可能需要執行代碼並進行適當的異常處理和測試來發現。語意錯誤則可能是最難發現的,因為它們需要開發者理解程式碼的預期行為,並通過單元測試、代碼審查或更詳細的系統測試來識別。