[code]public void onCreate(Bundle savedInstanceState)
{
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
String nullValue = null;
	try
	{
		nullValue.equals(“must be exception”);
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
}[/code]
위의 같은 예제가 있다고 가정을 해봅시다. 위의 try – catch문은 이클립스에서 자동완성을 하여 자동으로 붙은 코드입니다. 위의 경우에는 기존의 Java어플리케이션에서는 문제가 없지만 안드로이드에서는 다음과 같은 문제가 있습니다. 사실 이렇게 보니 또 문제가 없어보이네요. 아무튼 각설하고 왼쪽의 System.err를 보시면 안드로이드 고유의 Log를 사용하지 않고 에러가 출력되어 내가 의도한 로그의 Tag정보가 없는것이 현실입니다.
사실 이렇게 보니 또 문제가 없어보이네요. 아무튼 각설하고 왼쪽의 System.err를 보시면 안드로이드 고유의 Log를 사용하지 않고 에러가 출력되어 내가 의도한 로그의 Tag정보가 없는것이 현실입니다.
안드로이드에서 사용할 수 있는 형태로 로그를 출력하기 위해서는 다음과 같은 방법을 사용하시면 됩니다. 비슷한 예로 출력할 에러를 문자열 변수로 받고자 할때도 쓸 수 있습니다.
[code]try
{
	nullValue.equals(“must be exception”);
}
catch(Exception e)
{
	StringWriter sw = new StringWriter();
	e.printStackTrace(new PrintWriter(sw));
	String exceptionAsStrting = sw.toString();
	
	Log.e(“StackTraceExampleActivity”, exceptionAsStrting);
}[/code] 이제 위와같이 에러가 출력이 됩니다. 물론 이클립스 ADT플러그인에서 설정을 일부러 끄신게 아니라면 로그를 더블클릭하여 에러 위치로 이동하는것 역시 가능합니다.
이제 위와같이 에러가 출력이 됩니다. 물론 이클립스 ADT플러그인에서 설정을 일부러 끄신게 아니라면 로그를 더블클릭하여 에러 위치로 이동하는것 역시 가능합니다.
1346383891.zip
참고: http://stackoverflow.com/questions/1149703/stacktrace-to-string-in-java
