每天一道面試題-執行時異常和非執行時異常-你分清楚了嗎?
面試中,經常會遇到這樣的情況,
問:談談執行時異常和非執行時異常?
答:執行時異常是指程式執行時發生的異常
問:那麼非執行時異常又是什麼時候發生?
答:。。。。。。
問:請羅列幾個常見的執行時異常?
答:空指標異常,IOException,SQLException,陣列越界異常。。。。
以上這樣的場景非常常見,其實這是一個非常基礎的問題,但發現大家常常搞混。
其實這個問題,我個人認為是取的這個名字誤導了大家,執行時異常(Runtime exception)
這個名字正確的叫法應該是“邏輯錯誤”。
所以,現在你再回頭看,這樣的問題就非常容易區分了。
我們常見的執行時異常,比如“陣列越界”,“空指標”,“算數異常”,“型別轉換異常”,這些是不是都是因為我們程式的邏輯不夠嚴謹而造成,所以叫“邏輯錯誤”更合適。
而像“IO異常”,“SQL異常”這些並非程式造成,而是外界因素造成,所以java提供了異常機制,讓我們提前對這類問題做好預案處理,從而保證了程式的健壯性。
希望對你有所幫助。
相關推薦
每天一道面試題-執行時異常和非執行時異常-你分清楚了嗎?
面試中,經常會遇到這樣的情況,問:談談執行時異常和非執行時異常?答:執行時異常是指程式執行時發生的異常問:那麼非執行時異常又是什麼時候發生?答:。。。。。。問:請羅列幾個常見的執行時異常?答:空指標異常,IOException,SQLException,陣列越界異常。。。。以
一道面試題:說說程序和執行緒的區別
在理解這些概念之前首選要對併發有一定的感性認識,如果伺服器同一時間內只能服務於一個客戶端,其他客戶端都再那裡傻等的話,可見其效能的低下估計會被客戶罵出翔來,因此併發程式設計應運而生,併發是網路程式設計中必須考慮的問題。實現併發的方式有多種:比如多程序、多執行緒、IO多路複用。 在理解這些概念
一道面試題:通過wait和notify的兩個執行緒互動輸出thread1-1...thread1-5,thread2-6...thread2-10...
這是一道關於多執行緒的面試題,好久沒有做過這種多執行緒的題了,手有點生,那麼就來敲一敲 package threadDemo; /* * 多執行緒的交叉列印 */ public class
執行時異常和非執行時異常(一般異常)的區別
一,異常的概念 Java異常類層次結構圖: Throwable: 有兩個重要的子類:Exception(異常)和 Error(錯誤),二者都是 Java 異常處理的重要子類,各自都包含大量子類。 Error(錯誤):是程式無法處理的錯誤,表示執行應用程式中較嚴重問題。大多數錯誤與程式碼編
通俗理解執行時異常和非執行時異常(一般異常)
一,異常的概念 Java異常類層次結構圖: Throwable: 有兩個重要的子類:Exception(異常)和 Error(錯誤),二者都是 Java 異常處理的重要子類,各自都包含大量子類。 Error(錯誤):是程式無法處理的錯誤,表示執行
java異常之執行時異常和非執行時異常
RuntimeException RunntimeException的子類: ClassCastException 多型中,可以使用Instanceof 判斷,進行規避
Java執行時異常和非執行時異常
1.Java異常機制 Java把異常當做物件來處理,並定義一個基類java.lang.Throwable作為所有異常的超類。Java中的異常分為兩大類:錯誤Error和異常Exception,Java異常體系結構如下圖所示: 圖片來源:http://blog.c
從一道面試題談linux下fork的執行機制
今天一位朋友去一個不錯的外企面試linux開發職位,面試官出了一個如下的題目:
對檢查性異常和非檢查性異常的理解
強制 bsp 處理異常 代碼 cat cnblogs alt 多線程 學習 從開始學習Java,就學習了異常處理,知道異常分為檢查性異常和非檢查性異常,RuntimeException屬於非檢查性異常,知道異常的分類。但工作之前沒有很多的實際應用,知識書本上課件上的定義,
.Net轉Java.03.受查異常和非受查異常
控制 cli 編譯 time 語法 ring rest body div 轉到Java以後發現一個很妖的事情,為啥有些方法後邊有個 throws XXXXException 比如下面的代碼 @Override public <T> Re
java中執行緒安全和非執行緒安全的集合
執行緒安全 非執行緒安全 Collection Vector ArrayList、LinkedList H
關於JVM記憶體,執行緒共享和非執行緒共享。
寫部落格的目的是為了自己學習和複習,許多解釋來自於網上大牛,文章非原創。能幫助到別人當然更好不過,水平有限,可能有許多錯誤,歡迎指正。 什麼是JVM? 所謂JVM就是JAVA虛擬機器(Java Virtual Machine)。這也正是Jav
為什麼JVM記憶體區域分為執行緒共享和非執行緒共享
大多數 JVM 將記憶體區域劃分為 Method Area(Non-Heap)(方法區) ,Heap(堆) , Program Counter Register(程式計數器) , VM Stack(虛擬機器棧,也有翻譯成JAVA 方法棧的),Native M
PHP版本中執行緒安全和非執行緒安全的區別
Windows版的PHP從版本5.2.1開始有Thread Safe(c之分,這兩者不同在於何處?到底應該用哪種?這裡做一個簡單的介紹。 從2000年10月20日釋出的第一個Windows版的PHP3.0.17開始的都是執行緒安全的版本,這是由於與Linux/Unix系統
檢查型異常和非檢查型異常
對於因為程式設計錯誤而導致的異常,或者是不能期望程式捕獲的異常(解除引用一個空指標,陣列越界,除零,等等),為了使開發人員免於處理這些異常,一些異常被命名為非檢查型異常(即那些繼承自 RuntimeException 的異常)並且不需要進行宣告。 Checked Excep
Java多執行緒:執行緒安全和非執行緒安全的集合物件
轉載:https://blog.csdn.net/u011389474/article/details/54602812一、概念:執行緒安全:就是當多執行緒訪問時,採用了加鎖的機制;即當一個執行緒訪問該類的某個資料時,會對這個資料進行保護,其他執行緒不能對其訪問,直到該執行緒
初學C語言編程時最容易犯的錯誤,你踩坑了嗎?
不同的 類型 alt 結果 如何 wid text size can C編譯的程序對語法檢查並不像其它高級語言那麽嚴格,這就給編程人員留下“靈活的余地”,但還是由於這個靈活給程序的調試帶來了許多不便,尤其對初學C語言的人來說,經常會出一些連自己都不知道錯在哪裏的錯誤。看著有
JCL、SLF4J、Log4J、Log4J2、LogBack和JUL之間的關係,你搞清楚了嗎?
寫在前面 日誌元件是我們平時開發過程中必然會用到的元件。在系統中正確的列印日誌至少有下面的這些好處: 除錯:在程式的開發過程中,必然需要我們不斷的除錯以達到程式能正確執行的狀態 。記錄日誌可以讓開發人員清楚的瞭解程式的執行狀態定位問題; 資訊收集:在DT時代,誰掌握了資料誰就掌握了主動權。現在主流的日誌系統
Java多執行緒併發05——那麼多的鎖你都瞭解了嗎
> 在多執行緒或高併發情境中,經常會為了保證資料一致性,而引入鎖機制,本文將為各位帶來有關鎖的基本概念講解。關注我的公眾號「Java面典」瞭解更多 Java 相關知識點。 根據鎖的各種特性,可將鎖分為以下幾類: * 樂觀鎖/悲觀鎖 * 獨享鎖(互斥鎖)/共享鎖(讀寫鎖) * 可重入鎖 * 公平鎖/非公平鎖
面試題之final,finally和finalize的區別以及如果catch裡面有return語句,請問finally裡面的程式碼還會執行嗎?
/* * 面試題: * 1:final,finally和finalize的區別 * final:最終的意思,可以修飾類,成員變數,成員方法 * 修飾類,類不能被繼承 * 修飾變數,變數是常量 * 修飾方法,方法不能