未处理的exceptiontypes错误

我以前从来没有得过这个错误所以我不知道该做什么或它意味着什么

未处理的exceptiontypesOperationApplicationException

它出现在这段代码中:

 public void putSettings(SharedPreferences pref){ ArrayList ops = new ArrayList(); ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) .withSelection(Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(pref.getString(SmsPrefs.ID, ""))}) .withValue(Data.MIMETYPE,"vnd.android.cursor.item/color") .withValue("data1",nColor).build()); getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); //error ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) .withSelection(Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(pref.getString(SmsPrefs.ID, ""))}) .withValue(Data.MIMETYPE,"vnd.android.cursor.item/vibrate") .withValue("data1", nVibrate).build()); getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); //error ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) .withSelection(Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(pref.getString(SmsPrefs.ID, ""))}) .withValue(Data.MIMETYPE, "vnd.android.cursor.item/sound") .withValue("data1", ringTonePath).build()); getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);//error } 

它给了我2个选项“添加抛出声明”和“环绕尝试/捕获”。

我该怎么办?为什么?

    这意味着您正在调用的方法使用throws指令声明从Exception类派生的Exception 。 当以这种方式声明方法时,您将被迫使用try/catch块处理exception,或者向方法声明添加相同的throws (对于相同的exception或超types)语句。

    一个例子。

    我想在我的方法bar调用一些方法foo

    这是foo的定义:

     public static void foo(String a) throws Exception { // foo does something interesting here. } 

    我想打电话给foo 。 如果我只是这样做:

     private void bar() { foo("test"); } 

    …然后我会收到您遇到的错误。 foo向全世界宣称它真的可能会决定抛出Exception ,你最好准备好处理它。

    我有两个选择。 我可以改变bar的定义如下:

     private void bar() throws Exception { foo("test"); } 

    现在我已经公开了我自己的警告,我的方法或我调用的方法可能抛出我的方法的用户应该处理的Exception 。 由于我已将责任推迟到我方法的调用者,因此我的方法不必处理exception本身。

    如果可以的话,自己处理exception通常会更好。 这带给我们第二个选项, try/catch

     private void bar() { try { foo("test"); } catch(Exception e) { Log.wtf("MyApp", "Something went wrong with foo!", e); } } 

    现在我已经处理了编译器抱怨的foo抛出的潜在Exception 。 由于它已被处理,我不需要向我的bar方法添加throws指令。