0

我的 android 应用程序中有以下代码:

/**
         * Returns a single customer object based on UUID. */
        public static Customer getCustomer(UUID id)
        {
            try
            {
                Cursor cursor = CustomApp.data.db.query("Customer", customerCols,
                        "CustomerId='" + id.toString() + "'", null, null, null, null);
                if (cursor != null)
                    cursor.moveToFirst();
                Customer cust = new Customer(id);

                // Unrelated code here

                if (!cursor.isNull(23))
                    cust.isDeceased = (cursor.getInt(23) > 0); // EXCEPTION

                // More unrelated code here

                return cust;
            }
            catch (Exception ex)
            {
                ex.printStackTrace(); // This line gets skipped
                return null; // Code jumps to here
            }
        }

我正在尝试调试它。有一个例外cust.isDeceased = (cursor.getInt(23) > 0);为什么我得到例外完全是另一个问题)。当代码到达该行时,它会跳转到该catch部分。我在该行上放了一个断点,ex.printStackTrace();但代码完全跳过了这一行。它只是直接跳到该return null;行,并且永远不会打印堆栈跟踪。因此,调试代码变得非常困难,因为我不得不猜测出了什么问题。(如果您发现该代码有问题,请告诉我,但这不是这个问题的目的)。

我很抱歉我提供的信息/代码不足,但由于我真的不知道为什么会发生这种情况,我不知道什么是相关的,什么不是。有没有人遇到过这个问题?

4

2 回答 2

1

Log.e("TAG", "error", ex); 试试这个而不是 ex.printStackTrace(); 也尝试重新启动eclipse。

于 2013-08-05T11:25:28.910 回答
0

删除 try catch 子句,logcat 会显示详细的异常。

于 2013-08-05T11:24:06.740 回答