編譯與運行錯誤的區別
1. 編譯錯誤和運行錯誤,有什麼區別
編譯錯誤簡單的說就是一些語法,在運行前可以檢測到,錯誤比如const (int *)ptr;
運行錯誤比如說輸出一個未指向任何物的指針,就是在運行才能檢測;
2. 老大,我想問問c#編譯和運行的區別
通常說的編譯,是指生成最終文件(exe bin等)。這里包含了conpile和link,conpile是生成中間文件,生成成功說明沒有語法類錯誤,link是從中間文件生成最終文件。
運行,有調試運行(Debug)和執行運行兩種,都是啟動最終文件的意思,如果最終文件沒有生成(或與當前代碼不符),編譯器會啟動編譯,先生成最終文件,再執行。
這個對你應該沒有問題吧?如果將原理或者Debug細節,比較復雜,我也不敢說很清楚。
3. 編譯時異常和運行時異常怎麼理解,怎麼區分兩者
編譯錯誤,一般是語法上存在問題,編譯過不去; 運行錯誤,是指程序在運行過程中出現錯誤,只能說是程序存在一定的邊界bug; 編譯錯誤一般是指java語法的錯誤,運行錯誤分兩種一種是error還有就是Exception 有的異常是拋出但可繼續執行之後的代碼
4. Java編譯錯誤和運行錯誤有什麼區別 能否深入淺出
編譯出錯差不多就是語法不對,比如你寫String str = 'str';這么寫語法不對編譯就會出錯。運行出錯是指語法沒問題但是邏輯有問題,比如一個方法傳進一個String類型的變數str,方法體中有類似於str.equals("str");的語句,但是傳進的str是個null,那麼那一句就相當於null.equals("str");這肯定會拋空指針異常。
用手機做例子,編譯出錯就是手機在生產的時候零件不對,那就肯定不能出廠。運行出錯就是手機組裝完出廠了,到手了你沒用來打電話,直接拿來砸核桃了,那手機肯定報廢(NOKIA除外)。
5. C#中什麼是編譯錯誤,什麼是運行錯誤,它們的區別是什麼
在編譯成中間語言的時候就沒通過,也就是語法有錯誤,簡單的說,
就是"你說的話,人家完全聽不懂,沒法幫你編譯"所以是編譯錯誤,
這個是原則性的錯誤.
而編譯通過了,但是運行時錯誤,說明編程人員對代碼的思想有錯誤,
簡單的說就是"你說的話,人家聽得懂,但是不明白你什麼意識",語無倫次的
讓對方不知道你想做什麼,就運行時錯誤了.
6. 編譯時異常和運行時異常有什麼區別啊
Throwable 是所有 Java 程序中錯誤處理的父類 ,有兩種資類: Error 和 Exception 。 Error :表示由 JVM 所偵測到的無法預期的錯誤,由於這是屬於 JVM 層次的嚴重錯誤 ,導致 JVM 無法繼續執行,因此,這是不可捕捉到的,無法採取任何恢復的操作,頂多隻能顯示錯誤信息。 Exception :表示可恢復的例外,這是可捕捉到的。 Java 提供了兩類主要的異常 :runtime exception 和 checked exception 。 checked 異常也就是我們經常遇到的 IO 異常,以及 SQL 異常都是這種異常。 對於這種異常, JAVA 編譯器強制要求我們必需對出現的這些異常進行 catch 。所以,面對這種異常不管我們是否願意,只能自己去寫一大堆 catch 塊去處理可能的異常。 但是另外一種異常: runtime exception ,也稱運行時異常,我們可以不處理。當出現這樣的異常時,總是由虛擬機 接管。比如:我們從來沒有人去處理過 NullPointerException 異常,它就是運行時異常,並且這種異常還是最常見的異常之一。 出現運行時異常後,系統會把異常一直往上層拋,一直遇到處理代碼。如果沒有處理塊,到最上層,如果是多線程就由 Thread.run() 拋出 ,如果是單線程就被 main() 拋出 。拋出之後,如果是線程,這個線程也就退出了。如果是主程序拋出的異常,那麼這整個程序也就退出了。運行時異常是 Exception 的子類,也有一般異常的特點,是可以被 Catch 塊處理的。只不過往往我們不對他處理罷了。也就是說,你如果不對運行時異常進行處理,那麼出現運行時異常之後,要麼是線程中止,要麼是主程序終止。 如果不想終止,則必須撲捉所有的運行時異常,決不讓這個處理線程退出。隊列裡面出現異常數據了,正常的處理應該是把異常數據舍棄,然後記錄日誌。不應該由於異常數據而影響下面對正常數據的處理。 在這個場景這樣處理可能是一個比較好的應用,但並不代表在所有的場景你都應該如此。如果在其它場景,遇到了一些錯誤,如果退出程序比較好,這時你就可以不太理會運行時異常 ,或者是通過對異常的處理顯式的控製程序退出。 異常處理的目標之一就是為了把程序從異常中恢復出來 。
7. 編譯時出錯和運行時出錯到底有什麼區別
編譯錯誤
一般都是語法錯誤
運行時錯誤一般都是比如數組索引指向空值
4/0
這類錯誤
8. C#中什麼是編譯錯誤,什麼是運行錯誤,它們的區別是什麼
編譯錯誤是在運行之前報出的 運行錯誤就是字面意思 在運行中發生的異常你可以把編譯錯誤想像成 明明是要考試2+2 可你卻寫成了1+1 當老師在檢查你演算法對不對之前他就知道你錯了 因為 明明是2+2 就像樓上說的 一般是語法之類的錯誤 運行錯誤 就是你沒有語法之類的錯誤 可是在運行時 演算法或者某些東西使用不當出現的錯誤比如空指針異常 溢出異常 等等 要用具體的來說明的話比如 一個數組長度只有3位 可是你卻在使用過程中賦了4位以上的值 或者當你用了一個對象可是在卻一直沒有給對象引用類型等等 就好像 要考試2+2 你是寫的2+2沒錯 但是 你卻是寫的等於5 老師就發現你的結果存在錯誤 而不是一開始就寫錯了
9. C++開發,如何區分編譯錯誤和運行錯誤。
野指針什麼的在編譯期是編譯器是查不出來的。
但有一些編繹器會有警告的方式體現出來。
程序盡量的在debug下調試。多trace下。
