从整个Android应用程序中捕获所有类型的错误

时间:2017-01-26 06:15:46

标签: android

我有一个很大的Android应用程序,我需要记录我的应用程序中可能发生的所有类型的错误,包括try { } catch(throwable t) { } 等。 有可能完成吗?

我可以用

try/catch

但是将整个代码添加到import requests from bs4 import BeautifulSoup import operator def start(url): word_list = [] source_code = requests.get(url).text soup = BeautifulSoup(source_code, "html.parser") for bible_text in soup.findAll('font', {'class': 'tk4l'}): content = bible_text.get_text() words = content.lower().split() for each_word in words: word_list.append(each_word) clean_up_list(word_list) def clean_up_list(word_list): clean_word_list = [] for word in word_list: symbols = "~!@#$%^&*()_+`{}|\"?><`-=\][';/.,']" for i in range(0, len(symbols)): word = word.replace(symbols[i], "") if len(word) > 0: clean_word_list.append(word) create_dictionary(clean_word_list) def create_dictionary(clean_word_list): word_count = {} for word in clean_word_list: if word in word_count: word_count[word] += 1 else: word_count[word] = 1 for key, value in sorted(word_count.items(),key=operator.itemgetter(0)): print(key, value) start('http://www.holybible.or.kr/B_NIV/cgi/bibleftxt.php?VR=NIV&VL=1&CN=1&CV=99') 听起来很糟糕。我怎样才能捕捉到“内存不足”这样的错误?

3 个答案:

答案 0 :(得分:3)

要跟踪崩溃报告,最好的方法是使用Fabric或firebase(google)等第三方库。如果你不能使用这个库,你可以试试这个。

public class MyActivity extends Activity implements Thread.UncaughtExceptionHandler{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        if(ex.getClass().equals(OutOfMemoryError.class))
        {
            try {
                android.os.Debug.dumpHprofData(fileName);
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }
        ex.printStackTrace();
    }
}

答案 1 :(得分:1)

是的确有可能。您可以编写父活动并全局处理异常,如此example。之后,您可以使用Google分析,Crashlytics查看崩溃等每日报告

答案 2 :(得分:0)

最好的方法是包含分析。

请参阅this crashlytics 是一个可以通知几乎所有问题的库。试试吧。