java - 无法捕获 NumberFormatException

标签 java android exception try-catch

我在 Logcat 输出中收到 NumberFormatException,我想抑制它。显然这个异常只发生在华为设备上(我碰巧拥有)。由于某种原因,我的 catch() block 没有执行。有人可以帮忙吗:

具体来说,我想知道为什么我的 catch() 代码没有被调用。

Locale locale = Locale.getDefault();
System.out.println("Locale is  : [" + locale + "]"); // make sure there is a default Locale

 System.out.printf( "==Before try{}\n" );

try
{
  System.out.printf( "---Line44\n" );
  Calendar c = Calendar.getInstance(locale);
  System.out.printf( "---Line46\n" );
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  System.out.printf( "---Line48\n" );
  String formattedDate = df.format(c.getTime());
  System.out.printf( "---Line50\n" );
  System.out.printf( "Timestamp  : %s\n", formattedDate );
  System.out.printf( "---Line52\n" );
}
catch( java.lang.NumberFormatException e )
{
  // Ignore stupid exception - Huawei specific apparently..
  System.out.printf( "HUAWEI bug\n" );
}

System.out.printf( "==After Entire Block, Line60\n" );

欲了解更多信息,请提及华为错误here但我的 try/catch 语句肯定有问题吗?

这是异常转储:

10-01 11:07:53.402: I/System.out(1758): ==Before try{}
10-01 11:07:53.402: I/System.out(1758): ---Line44
10-01 11:07:53.432: W/System.err(1758): java.lang.NumberFormatException: Invalid int: ""
10-01 11:07:53.432: W/System.err(1758):     at java.lang.Integer.invalidInt(Integer.java:138)
10-01 11:07:53.432: W/System.err(1758):     at java.lang.Integer.parseInt(Integer.java:359)
10-01 11:07:53.432: W/System.err(1758):     at java.lang.Integer.parseInt(Integer.java:332)
10-01 11:07:53.432: W/System.err(1758):     at java.util.Calendar.getHwFirstDayOfWeek(Calendar.java:807)
10-01 11:07:53.432: W/System.err(1758):     at java.util.Calendar.<init>(Calendar.java:745)
10-01 11:07:53.432: W/System.err(1758):     at java.util.GregorianCalendar.<init>(GregorianCalendar.java:338)
10-01 11:07:53.442: W/System.err(1758):     at java.util.GregorianCalendar.<init>(GregorianCalendar.java:314)
10-01 11:07:53.442: W/System.err(1758):     at java.util.Calendar.getInstance(Calendar.java:1098)
10-01 11:07:53.442: W/System.err(1758):     at com.example.test.MyApplication.onCreate(MyApplication.java:45)
10-01 11:07:53.442: W/System.err(1758):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
10-01 11:07:53.442: W/System.err(1758):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3954)
10-01 11:07:53.442: W/System.err(1758):     at android.app.ActivityThread.access$1300(ActivityThread.java:123)
10-01 11:07:53.442: W/System.err(1758):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
10-01 11:07:53.442: W/System.err(1758):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-01 11:07:53.442: W/System.err(1758):     at android.os.Looper.loop(Looper.java:137)
10-01 11:07:53.442: W/System.err(1758):     at android.app.ActivityThread.main(ActivityThread.java:4424)
10-01 11:07:53.442: W/System.err(1758):     at java.lang.reflect.Method.invokeNative(Native Method)
10-01 11:07:53.442: W/System.err(1758):     at java.lang.reflect.Method.invoke(Method.java:511)
10-01 11:07:53.442: W/System.err(1758):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
10-01 11:07:53.442: W/System.err(1758):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
10-01 11:07:53.442: W/System.err(1758):     at dalvik.system.NativeStart.main(Native Method)
10-01 11:07:53.442: I/System.out(1758): ---Line46
10-01 11:07:53.452: I/System.out(1758): ---Line48
10-01 11:07:53.462: I/System.out(1758): ---Line50
10-01 11:07:53.462: I/System.out(1758): Timestamp  : 2014-10-01 11:07:53
10-01 11:07:53.462: I/System.out(1758): ---Line52
10-01 11:07:53.462: I/System.out(1758): ==After Entire Block, Line61

最佳答案

我会检查调用堆栈中其他项目的来源。似乎有可能其他东西正在捕获、记录并返回,而您的代码不会出现异常。时间戳行是否显示在输出中?

关于java - 无法捕获 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130608/

相关文章:

java - 在 LinkedList 上实现克隆

c++ - c++调试异常c0000139

Java Graphics2D 获取旋转图像边界和新坐标

java - Bean 定义是抽象的 独立 Java 应用程序上的错误

java.lang.NoSuchMethodError : java_cup.runtime.lr_parser.getSymbolFactory()Ljava_cup/runtime/SymbolFactory

android - 如何在 nativescript/angular android 中导入/导出 sqlite 数据库?

android - 从谷歌驱动器Android API下载图像?

android - 当我尝试在选项卡之间切换时应用程序崩溃

c++ - 这是使用 c_str 异常未定义行为吗?

C++ 运行时,显示异常消息