标签: stack-trace

如何从Java中的超类的上下文中检索最低子类的名称?

合理的

我想在几个超类上有更详细的日志调试/日志记录输出,因此子类名称实际上不会影响实时性能,也不会影响应用程序逻辑.我也认为通常这样做是相当糟糕的设计,但是我真的希望在开发运行期间记录这些信息.

假设我有一个如下所示的简单类结构,如何将子类的名称拉入超类而不必显式传递引用?

public abstract AbstractClass {
    private Logger logger = LoggerFactory.getLogger(getClass());

    public AbstractClass() {}

    public void execute(ContextObject context) {
        if (logger.debuggingEnabled()) {
            String invokingClassName = ""; // <-- how do I get this?
            logger.debug("Executing {}", invokingClassName);
        }
        // shared application logic is here...
    }
}

public MyClass extends AbstractClass {
    public MyClass() {}

    @Override
    public void execute(ContextObject context) {
        super.execute(context);
        // application logic...
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾经使用过解析堆栈跟踪,我怀疑如果我想要这些信息,那就是我必须走的路线.有谁知道一个库会为我做这个或一个很好的代码片段?

java debugging stack-trace

2
推荐指数
2
解决办法
421
查看次数

帮助理解这个堆栈跟踪

我打开了健康监控,我有以下错误,我正在努力理解:

例外:

Exception information:
    Exception type: System.InvalidCastException
    Exception message: Specified cast is not valid.


Thread information:
    Thread ID: 5
    Thread account name: NT AUTHORITY\NETWORK SERVICE
    Is impersonating: False
    Stack trace:    at _Default.Repeater1_ItemDataBound(Object sender, RepeaterItemEventArgs e)
   at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
   at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
   at _Default.up1_Load()
   at _Default.Timer1_Tick(Object sender, EventArgs e)
   at System.Web.UI.Timer.OnTick(EventArgs e)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Run Code Online (Sandbox Code Playgroud)

我只想弄清楚问题发生的确切位置和它是什么 - 它是在Repeater1_ItemDataBound子程序中发生的,还是在Timer1_Tick子程序中发生的?在跟踪的顶部或底部发生错误之前发生的最后一件事情是什么?

任何帮助非常感谢

谢谢

asp.net stack-trace

2
推荐指数
3
解决办法
4328
查看次数

在stacktrace中从第一行调用方法:"MyClass.java:1"

在我的项目中,我使用log4j来记录错误和许多框架:AOP,spring等.

当我在stacktrace中调用第一行时,这意味着什么,例如:

com.foo.bar.MyException: Error
    at com.foo.bar.MyClass.handleException(MyClass.java:92)
    at com.foo.bar.MyClass.myMethod(MyClass.java:76)
    at com.foo.bar.MyClass.myMethod(MyClass.java:1) // <- here ???
    ...
Run Code Online (Sandbox Code Playgroud)

在第一行,我的类是注释,一切都正确编译

MyClass.java:

/* Copyright 2011 */
package com.foo.bar;

import ...

public class MyClass implements MyInterface {...
Run Code Online (Sandbox Code Playgroud)

java exception stack-trace

2
推荐指数
1
解决办法
589
查看次数

asp mvc iis7调试模式错误页面输出不可读的字符

我在iis7(win7)上的localhost上运行了一个asp.mvc web应用程序,并且我没有使用调用堆栈获得正常的黄色死机屏幕.我总是得到一个充满随机不可读字符的页面.有没有人见过这个?我如何收回我的callstack?

错误堆栈字符

asp.net-mvc iis-7 stack-trace

2
推荐指数
1
解决办法
681
查看次数

获取对象调用层次结构

可以说我有3节课:

class A {
   void do_A() {
      //Check object call hierarchy
    }
}
class B {
   void do_B() {
      A a;
      a.do_A();
    }
}
class C {
   void do_C() {
      B b;
      b.do_A();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我打电话给:

C c;
c.do_C();
Run Code Online (Sandbox Code Playgroud)

如何从A的do_A()中获取对象调用层次结构?

我的意思是我希望在a.do_A()中获得对象的引用(可以很容易地实现this),对象b的引用调用a.do_A(),以及对象c的引用调用b.do_B().

我认为这应该是可能的,因为我可以通过调用堆栈获得调用层次结构,所以我确信我应该能够获得有关调用这些方法的对象的更多信息.

c# methods function object stack-trace

2
推荐指数
1
解决办法
1142
查看次数

如何理解Android崩溃错误并纠正它们

这是其中一个堆栈跟踪的示例,如何从中修复我的应用程序?谷歌市场上还有其他任何工具可以帮助我吗?

java.lang.IllegalStateException:未知URL:content:// media/external/audio/albumart/-1,位于android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java)的android.os.Parcel.readException(Parcel.java:1255) :160)在android.content.ContentProviderProxy.insert(ContentProviderNative.java:450)的android.doc.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)的android.content.ContentResolver.insert(ContentResolver.java:587) com.multi.board.series9button.onContextItemSelected(series9button.java:95)中的.multi.board.series9button.function2(series9button.java:155)位于com的android.app.Activity.onMenuItemSelected(Activity.java:2206). android.internal.policy.impl.PhoneWindow $ ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2781)位于com.android.internal.view的com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158). menu.MenuBuilder.performItemAction(MenuBuilder.java:855)at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDia)logHelper.java:137)在android.widget.ListView的android.widget.AdapterView.performItemClick(AdapterView.java:284)的com.android.internal.app.AlertController $ AlertParams $ 3.onItemClick(AlertController.java:876). performItemClick(ListView.java:3382)在Android.os.Handler.dispatchMessage(Handler)上的android.widget.AbsListView $ PerformClick.run(AbsListView.java:1696)android.os.Handler.handleCallback(Handler.java:587) .java:92)在android.app.Looper.loop(Looper.java:144)的android.app.ActivityThread.main(ActivityThread.java:4937)at java.lang.reflect.Method.invokeNative(Native Method)at at java.lang.reflect.Method.invoke(Method.java:521)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:626)at dalvik.system.NativeStart.main(Native Method)


编辑:

我实际上称它为功能2!什么是糟糕的编程.这是功能.问题是我无法通过我的手机或其他任何我试过的机器崩溃....

public void function2(int id){
      Toast.makeText(this, "Set as notification",
Run Code Online (Sandbox Code Playgroud)

Toast.LENGTH_SHORT).show(); String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();

            String path = sdcard + "/multi10/" + Global.currentboard +
Run Code Online (Sandbox Code Playgroud)

"/ series9";

                  File k = new File(path, Global.currentsound);

                  ContentValues values = new ContentValues();
                  values.put(MediaStore.MediaColumns.DATA,
Run Code Online (Sandbox Code Playgroud)

k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE,"MultiboardNotif"); values.put(MediaStore.MediaColumns.MIME_TYPE,"audio/mpeg"); values.put(MediaStore.Audio.Media.ARTIST,"未知艺术家"); values.put(MediaStore.Audio.Media.IS_RINGTONE,false); values.put(MediaStore.Audio.Media.IS_NOTIFICATION,true); values.put(MediaStore.Audio.Media.IS_ALARM,false); values.put(MediaStore.Audio.Media.IS_MUSIC,false);

                  Uri uri =
Run Code Online (Sandbox Code Playgroud)

MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());

getContentResolver().delete(uri,MediaStore.MediaColumns.TITLE …

debugging android stack-trace google-play

2
推荐指数
1
解决办法
2271
查看次数

最后抛出的Exception如何包含先前抛出的异常?

抛出的最后一个异常如何包含java中之前抛出的所有异常?

我从失败安全异常处理中读取失败安全异常处理,我无法理解 这一点"一种方法是确保抛出的最后一个异常包含所有先前抛出的异常." 我们怎样才能做到这一点?

java oop fault-tolerance exception stack-trace

2
推荐指数
1
解决办法
468
查看次数

getTraceAsString()打印出一整行

我正在使用php方法getTraceAsString(),这将抛出我的错误消息,如:

#0 /var/www/wordpress/wp-content/themes/Aisis-Framework/AisisCore/Template/Builder.php(147): AisisCore_Template_Builder->_render_template_array(Array, 'navigation') #1 /var/www/wordpress/wp-content/themes/Aisis-Framework/index.php(3): AisisCore_Template_Builder->render_view('navigation') #2 /var/www/wordpress/wp-includes/template-loader.php(47): include('/var/www/wordpr...') #3 /var/www/wordpress/wp-blog-header.php(16): require_once('/var/www/wordpr...') #4 /var/www/wordpress/index.php(17): require('/var/www/wordpr...') #5 {main}
Run Code Online (Sandbox Code Playgroud)

你可以看到一个巨大的字符串.他们提供的示例将跟踪打印为单独的行.为了得到这个,我有什么必须做的吗?

php string exception stack-trace

2
推荐指数
1
解决办法
2337
查看次数

调试DMD通过GDB生成程序

我正在尝试使用D编译调试我的第一个程序

dmd -debug hello.d
Run Code Online (Sandbox Code Playgroud)

但是当我通过GDB-7.6运行可执行文件时,它似乎不知道在哪里找到源代码并解码堆栈跟踪的格式(及其名称 - 解码).

是否GDB调试DMD生成的可执行文件尚未得到支持或者我错过了什么?

gdb d stack-trace dmd demangler

2
推荐指数
1
解决办法
1425
查看次数

如何查看Android Studio中到底发生了什么异常?

使用Eclipse,可以在Logcat中打印出堆栈跟踪,因此我可以跟踪应用程序中发生异常的确切位置。但是,使用Android Studio时,异常会在窗口中清晰地解析,但是我找不到源代码行和文件。

我尝试探索“ stackState”(见下文),但未找到任何线索。

您应该如何找到它?

在此处输入图片说明

debugging android exception stack-trace android-studio

2
推荐指数
1
解决办法
1569
查看次数