亚洲国产第一站精品蜜芽_亚洲AV无码精品色午夜果冻不卡_国产香蕉九九久久精品免费_国产精品亚洲专区无码不卡

更多精彩內容,歡迎關注:

視頻號
視頻號

抖音
抖音

快手
快手

微博
微博

java crash

文檔

java crash

Crash就是由于代碼異常而導致App非正常退出現象,也就是常說的崩潰。在工作目錄下會產生一個日志文件,而java crash通過簡單的方式就能夠捕獲到異常。
推薦度:
導讀Crash就是由于代碼異常而導致App非正常退出現象,也就是常說的崩潰。在工作目錄下會產生一個日志文件,而java crash通過簡單的方式就能夠捕獲到異常。

java crash是什么,讓我們一起了解一下:

Crash就是由于代碼異常而導致App非正常退出現象,也就是常說的崩潰。在工作目錄下會產生一個日志文件,而java crash通過簡單的方式就能夠捕獲到異常。

那么在java進程中crash產生錯誤了怎么辦?

如果有一個嚴重的錯誤引起Java進程非正常退出,我們叫Crash,這時候會產生一個日志文件,缺省情況下,這個文件會產生在工作目錄下,但是,可以在Java啟動參數通過下面的設置,來改變這個文件的位置和命名規則。例如:java -XX:ErrorFile=/var/log/java/java_error_%p.log。就將這個錯誤文件放在/var/log/java下,并且以java_error_pid.log的形式出現。

#!/usr/sbin/dtrace?-qs
proc:::signal-send
/args[1]->pr_pid?==?$1/
{
printf("%s(pid:%d)?is?sending?signal?%d?to?%s"n",?execname,?pid,?args[2],args[1]->pr_fname);
}

案例分析java crash的具體使用:以Android Crash之Java Crash為例。

首先我們要了解Android的Crash類型,那在Android中通常有兩種Crash類型,分別是Java Crash和Native Crash。

Java Crash在Android上的特點是什么?1、這類錯誤一般是由Java層代碼觸發的。2、一般情況下程序出錯時會彈出提示框,JVM虛擬機退出。3、一般的Crash工具都能夠捕獲,系統也提供了API。

我們通過UncaughtExceptionHandler來記錄dump異常日志代碼如下:

package?com.devilwwj.androidcrashdemo;
/**
?*?com.devilwwj.androidcrashdemo
?*?Created?by?devilwwj?on?16/5/27.
?*/
import?android.content.Context;
import?android.content.pm.PackageInfo;
import?android.content.pm.PackageManager;
import?android.content.pm.PackageManager.NameNotFoundException;
import?android.os.Build;
import?android.os.Environment;
import?android.os.Process;
import?android.util.Log;
import?java.io.BufferedWriter;
import?java.io.File;
import?java.io.FileWriter;
import?java.io.IOException;
import?java.io.PrintWriter;
import?java.lang.Thread.UncaughtExceptionHandler;
import?java.text.SimpleDateFormat;
import?java.util.Date;
public?class?CrashHandler?implements?UncaughtExceptionHandler?{
????private?static?final?String?TAG?=?"CrashHandler";
????private?static?final?boolean?DEBUG?=?true;
????private?static?final?String?PATH?=?Environment
????????????.getExternalStorageDirectory()?+?"/CrashDemo/log/";
????private?static?final?String?FILE_NAME?=?"crash";
????private?static?final?String?FILE_NAME_SUFFIX?=?".trace";
????private?static?final?String?ABOLUTE_PATH?=?PATH?+?FILE_NAME?+?FILE_NAME_SUFFIX;
????private?String?deviceToken;
????private?static?CrashHandler?sInstance?=?new?CrashHandler();
????private?UncaughtExceptionHandler?mDefaultCrashHandler;
????private?Context?mContext;
????private?CrashHandler()?{
????}
????public?static?CrashHandler?getInstance()?{
????????return?sInstance;
????}
????public?void?init(Context?context)?{
????????mDefaultCrashHandler?=?Thread.getDefaultUncaughtExceptionHandler();
????????Thread.setDefaultUncaughtExceptionHandler(this);
????????mContext?=?context.getApplicationContext();
????}
????/**
?????*?這個是最關鍵的函數,當程序中有未被捕獲的異常,系統將會自動調用#uncaughtException方法
?????*?thread為出現未捕獲異常的線程,ex為未捕獲的異常,有了這個ex,我們就可以得到異常信息。
?????*/
????@Override
????public?void?uncaughtException(Thread?thread,?Throwable?ex)?{
????????try?{
????????????//?導出異常信息到SD卡中
????????????dumpExceptionToSDCard(ex);
????????}?catch?(IOException?e)?{
????????????e.printStackTrace();
????????}
????????ex.printStackTrace();
????????//?如果系統提供了默認的異常處理器,則交給系統去結束我們的程序,否則就由我們自己結束自己
????????if?(mDefaultCrashHandler?!=?null)?{
????????????mDefaultCrashHandler.uncaughtException(thread,?ex);
????????}?else?{
????????????Process.killProcess(Process.myPid());
????????}
????}
????private?File?dumpExceptionToSDCard(Throwable?ex)?throws?IOException?{
????????//?如果SD卡不存在或無法使用,則無法把異常信息寫入SD卡
????????if?(!Environment.getExternalStorageState().equals(
????????????????Environment.MEDIA_MOUNTED))?{
????????????if?(DEBUG)?{
????????????????Log.w(TAG,?"sdcard?unmounted,skip?dump?exception");
????????????????return?null;
????????????}
????????}
????????File?dir?=?new?File(PATH);
????????if?(!dir.exists())?{
????????????dir.mkdirs();
????????}
????????long?current?=?System.currentTimeMillis();
????????String?time?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss")
????????????????.format(new?Date(current));
????????//?File?file?=?new?File(PATH?+?FILE_NAME?+?time?+?"_"+?deviceToken?+
????????//?FILE_NAME_SUFFIX);
????????File?file?=?new?File(PATH?+?FILE_NAME?+?FILE_NAME_SUFFIX);
????????if?(!file.exists())?{
????????????file.createNewFile();
????????}?else?{
????????????try?{
????????????????//?追加內容
????????????????PrintWriter?pw?=?new?PrintWriter(new?BufferedWriter(
????????????????????????new?FileWriter(file,?true)));
????????????????pw.println(time);
????????????????dumpPhoneInfo(pw);
????????????????pw.println();
????????????????ex.printStackTrace(pw);
????????????????pw.println("---------------------------------分割線----------------------------------");
????????????????pw.println();
????????????????pw.close();
????????????}?catch?(Exception?e)?{
????????????????Log.e(TAG,?"dump?crash?info?failed");
????????????}
????????}
????????return?file;
????}
????private?void?dumpPhoneInfo(PrintWriter?pw)?throws?NameNotFoundException?{
????????PackageManager?pm?=?mContext.getPackageManager();
????????PackageInfo?pi?=?pm.getPackageInfo(mContext.getPackageName(),
????????????????PackageManager.GET_ACTIVITIES);
????????pw.print("App?Version:?");
????????pw.print(pi.versionName);
????????pw.print('_');
????????pw.println(pi.versionCode);
????????//?android版本號
????????pw.print("OS?Version:?");
????????pw.print(Build.VERSION.RELEASE);
????????pw.print("_");
????????pw.println(Build.VERSION.SDK_INT);
????????//?手機制造商
????????pw.print("Vendor:?");
????????pw.println(Build.MANUFACTURER);
????????//?手機型號
????????pw.print("Model:?");
????????pw.println(Build.MODEL);
????????//?cpu架構
????????pw.print("CPU?ABI:?");
????????pw.println(Build.CPU_ABI);
????}
????/**
?????*?提供方法上傳異常信息到服務器
?????*?@param?log
?????*/
????private?void?uploadExceptionToServer(File?log)?{
????????//?TODO?Upload?Exception?Message?To?Your?Web?Server
????}
}

上面是核心代碼,可以直接拿去用,可以在Application類中進行初始化。

以上就是小編今天的分享了,希望可以幫助到大家。

文檔

java crash

Crash就是由于代碼異常而導致App非正常退出現象,也就是常說的崩潰。在工作目錄下會產生一個日志文件,而java crash通過簡單的方式就能夠捕獲到異常。
推薦度:
為你推薦
資訊專欄
熱門視頻
相關推薦
java獲取網絡時間 java crontab java獲取視頻時長 java csrf java獲取請求域名 java獲取路徑 java cssbox java獲取運行時間 java ctp java獲取隨機字符串 java daemon java獲取隨機數 java dashboard java獲得當前路徑 java表單校驗 java dataframe java規則引擎 java dataset java讀取json java讀取本地excel java獲取秒級時間戳 java core java獲取泛型class java corba java cookie java獲取本地ip java controller java獲取本周日期 java context japanese java 微信怎么群發消息 java獲取時間差 java獲取文件名后綴 微博賬號怎么注銷 excel如何換行 java獲取當月最后一天日期 excel去重 java獲取當前項目的路徑 QQ怎么強制解綁手機號 java獲取當前路徑的幾種方法
Top 亚洲国产第一站精品蜜芽_亚洲AV无码精品色午夜果冻不卡_国产香蕉九九久久精品免费_国产精品亚洲专区无码不卡
<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 亚洲精品一区二区三区福利| 鲁大师成人一区二区三区| 国产视频精品xxxx| 欧美91大片| 久久久久一区二区| 午夜精品电影| 午夜国产精品视频| 亚洲视频每日更新| 99re成人精品视频| 最新中文字幕亚洲| 亚洲激情精品| 亚洲高清免费| 黄色工厂这里只有精品| 国产一区二区按摩在线观看| 国产精品日韩二区| 国产精品久久国产精品99gif| 欧美另类一区| 欧美日韩国产成人在线91| 欧美精品亚洲二区| 欧美日韩ab片| 欧美午夜理伦三级在线观看| 欧美色图首页| 欧美视频日韩视频| 国产精品视频区| 国产视频亚洲| 狠狠色狠狠色综合日日tαg| 韩曰欧美视频免费观看| 亚洲国产成人精品女人久久久| 在线国产精品播放| 亚洲精品久久久蜜桃| 亚洲美女视频在线观看| 99一区二区| 午夜视频在线观看一区| 久久成人国产精品| 久久亚洲精品网站| 欧美激情综合网| 国产精品免费看片| 国产亚洲精品激情久久| 亚洲高清激情| 在线亚洲精品| 国产精品www色诱视频| 国产精品啊啊啊| 国产一区日韩二区欧美三区| 在线精品国精品国产尤物884a| 亚洲国产精品嫩草影院| 一本大道久久a久久综合婷婷 | 欧美精品偷拍| 欧美午夜精品久久久久久浪潮| 国产精品私拍pans大尺度在线| 国产在线观看精品一区二区三区| 亚洲电影免费在线观看| 一本色道久久综合亚洲二区三区| 午夜在线a亚洲v天堂网2018| 久久免费黄色| 国产精品国产三级国产aⅴ入口| 国产手机视频精品| 亚洲激情亚洲| 久久er精品视频| 欧美屁股在线| 国内精品久久久久影院 日本资源| 亚洲国产影院| 久久精品国产99精品国产亚洲性色 | 亚洲综合欧美日韩| 久久人人看视频| 国产精品久久国产精麻豆99网站| 狠狠入ady亚洲精品| 亚洲一区二区久久| 欧美成人免费全部观看天天性色| 国产伦精品一区二区三区免费| 日韩视频在线一区| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品qvod| 亚洲日本中文字幕| 久久一综合视频| 国产日韩在线一区| 亚洲最新色图| 欧美日韩爆操| 亚洲日产国产精品| 老牛嫩草一区二区三区日本| 国产精品一区在线观看你懂的| 一本色道久久综合狠狠躁的推荐| 开元免费观看欧美电视剧网站| 国产一区二区精品久久| 亚洲欧美日韩高清| 国产精品久久久久久妇女6080| 亚洲精品国产无天堂网2021| 欧美 日韩 国产精品免费观看| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲网站在线| 国产精品男女猛烈高潮激情| 亚洲一区二区三区精品视频 | 欧美色区777第一页| 亚洲精品久久| 欧美日本高清视频| 一本色道婷婷久久欧美| 欧美性猛交一区二区三区精品| 一区二区精品在线| 国产精品高清网站| 亚洲欧美日本国产专区一区| 国产精品你懂的| 销魂美女一区二区三区视频在线| 国产免费观看久久| 久久噜噜噜精品国产亚洲综合| 极品少妇一区二区三区精品视频 | 激情综合激情| 欧美88av| 一区二区三区欧美在线观看| 欧美特黄一区| 午夜一级在线看亚洲| 国内精品久久久久久久影视蜜臀| 久久精品系列| 亚洲美女精品久久| 国产精品每日更新在线播放网址| 欧美一区二区三区啪啪| 永久91嫩草亚洲精品人人| 欧美激情麻豆| 亚洲欧美日韩在线不卡| 影音先锋日韩资源| 欧美日韩在线电影| 久久久久久高潮国产精品视| 亚洲人成在线观看| 国产嫩草一区二区三区在线观看| 久久亚洲精品一区二区| 99精品国产99久久久久久福利| 国产精品影音先锋| 欧美成人午夜视频| 午夜亚洲伦理| 亚洲乱码精品一二三四区日韩在线 | 久久亚洲国产成人| 9久re热视频在线精品| 国产麻豆91精品| 欧美精品国产精品日韩精品| 性欧美video另类hd性玩具| 91久久精品日日躁夜夜躁欧美| 国产精品久久久久久久久久ktv| 久久永久免费| 欧美一区二区三区精品电影| 99国产精品一区| 在线看不卡av| 国产日韩欧美制服另类| 欧美日韩在线电影| 欧美成人午夜视频| 久久久久久亚洲精品中文字幕| 亚洲网友自拍| 日韩一区二区免费看| 亚洲国产精品久久91精品| 国产日韩欧美三区| 国产精品美女xx| 欧美日韩国产黄| 欧美大片免费久久精品三p| 久久riav二区三区| 欧美一区二区三区久久精品| 亚洲午夜久久久| 一本色道久久88亚洲综合88| 亚洲国产欧美日韩| 亚洲成色www久久网站| 国产一区二区三区的电影| 国产精品视频yy9099| 国产精品久久一区主播| 欧美日韩一区二区三区在线 | 欧美有码在线视频| 亚洲欧美日韩综合国产aⅴ| 亚洲午夜精品在线| 亚洲午夜在线观看视频在线| 99视频精品全国免费| 一级成人国产| 亚洲视屏一区| 亚洲欧美日韩国产综合在线 | 国产欧美一区二区色老头 | 国产在线视频欧美| 国产亚洲aⅴaaaaaa毛片| 久久久欧美精品sm网站| 久久精品一区蜜桃臀影院| 久久久www成人免费毛片麻豆| 久久国产加勒比精品无码| 久久久久久久久岛国免费| 久久免费观看视频| 免费观看日韩| 欧美日韩一区二区三区在线观看免| 欧美视频在线观看免费| 国产精品你懂的在线| 国产日韩一区二区三区在线播放| 黄色另类av| 亚洲精品一区二区在线| 亚洲一区二区视频| 久久精品亚洲国产奇米99| 欧美mv日韩mv国产网站| 欧美视频免费看| 国产一区二区三区四区在线观看| 在线精品观看| 亚洲视频一区在线观看| 久久精品日韩一区二区三区| 欧美福利在线观看| 国产精品一区三区| 亚洲高清激情| 亚洲欧美电影院| 欧美护士18xxxxhd| 国产婷婷成人久久av免费高清| 亚洲国产精品久久久久久女王| 亚洲一区视频|