android code 程式異常處理與記錄log

2021-06-26 05:52:59 字數 1870 閱讀 9445

這裡是分析的vlc的異常處理。

1,設定當前執行緒的異常處理函式

thread.setdefaultuncaughtexceptionhandler(new vlccrashhandler());
2,在 vlccrashhandler 中處理異常

public class vlccrashhandler implements uncaughtexceptionhandler 

@override

public void uncaughtexception(thread thread, throwable ex)

defaultueh.uncaughtexception(thread, ex);

}private void writelog(string log, string name) catch (filenotfoundexception e)

outputstreamwriter output = new outputstreamwriter(stream);

bufferedwriter bw = new bufferedwriter(output);

try catch (ioexception e) finally catch (ioexception e) }}

private void writelogcat(string name) catch (ioexception e)

}}

乙個記錄的是崩潰的堆疊資訊,乙個記錄的是崩潰時的logcat,結合使用,還是比較方便的。

下面是用到的logcat類:

public class logcat ;

process process = runtime.getruntime().exec(args);

inputstreamreader input = new inputstreamreader(process.getinputstream());

fileoutputstream filestream;

try catch( filenotfoundexception e)

outputstreamwriter output = new outputstreamwriter(filestream);

bufferedreader br = new bufferedreader(input);

bufferedwriter bw = new bufferedwriter(output);

try

}catch(exception e) {}

finally

}/**

** @return the log string.

* @throws ioexception

*/public static string getlogcat() throws ioexception ;

process process = runtime.getruntime().exec(args);

inputstreamreader input = new inputstreamreader(

process.getinputstream());

bufferedreader br = new bufferedreader(input);

stringbuilder log = new stringbuilder();

string line;

while ((line = br.readline()) != null)

br.close();

input.close();

return log.tostring();

}}

程式異常問題

為什麼要進行異常處理 程式因為各種原因出現問題導致的結果是程式直接崩潰,結果和開發過程出現的問題結果大不一樣。因此需要使用異常的處理來防止軟體系統崩潰 程式中的安全隱患 網路故障導致資料庫連線問題 使用者的非法操作 資料驗證失敗 資料處理中的任何意外 例如 查詢超時,資源檔案丟失等 了解異常類exc...

異常處理程式(Exception handler)

當然,丟擲的異常必須在某處得到處理。這個 地點 就是 異常處理程式 exception handler 針對每個要捕獲的異常,你得準備相應的處理程式。異常處理程式緊跟在 try 區塊之後,以關鍵字 catch 表示 try catch type1 id1 catch type2 id2 catch ...

socket程式異常終止

最近在做伺服器的時候,碰到了程式異常終止的問題,困擾了我近乙個星期的時間 排除了很多重可能性,終於找到原因了,記錄下,以免忘記。當server端關閉乙個socket連線時,如果client端繼續傳送資料,系統會發出乙個sigpipe訊號給程序,通知程序這個連線已經斷開,不應該再傳送資料。而linux...