티스토리 뷰

728x90

핵심 코드

[kotlin]

val stringWriter = StringWriter()
e.printStackTrace(PrintWriter(stringWriter))
val exception = stringWriter.toString()
Log.d(logTag, "exception = $exception")

[java]

StringWriter stringWriter = new StringWriter();
e.printStackTrace(new PrintWriter(stringWriter));
Log.d("tag", "stringWriter = " + stringWriter);


설명

예외 내용을 로그캣에서 출력하여 확인하고 싶은 경우가 있습니다.
그런 경우 해당 코드를 활용하시면 됩니다.
아래에 전체 코드를 첨부해 놓았으니 참고 부탁드리겠습니다.
아래 코드는 문자열 "한글" 을 정수로 형변환하여 예외를 발생시킨 상황입니다.


전체 코드

package com.tistory.boywin1992

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import java.io.PrintWriter
import java.io.StringWriter

class MainActivity : AppCompatActivity() {

    private val logTag = this.javaClass.simpleName + ".Tag"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        try {
            val korean = "한글" as Int
        } catch (e:Exception) {
            val stringWriter = StringWriter()
            e.printStackTrace(PrintWriter(stringWriter))
            val exception = stringWriter.toString()
            Log.d(logTag, "exception = $exception")
        }
    }
}


로그캣 출력 내용

2022-03-31 09:46:05.752 16685-16685/com.tistory.boywin1992 D/MainActivity.Tag: exception = java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        at com.tistory.boywin1992.MainActivity.onCreate(MainActivity.kt:18)
        at android.app.Activity.performCreate(Activity.java:8282)
        at android.app.Activity.performCreate(Activity.java:8262)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4005)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4197)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2434)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8633)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133)

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함