คำถามติดแท็ก illegalargumentexception

26
IllegalArgumentException หรือ NullPointerException สำหรับพารามิเตอร์ null? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันมีวิธีตัวตั้งค่าง่าย ๆ สำหรับคุณสมบัติและnullไม่เหมาะสมกับคุณสมบัตินี้โดยเฉพาะ ฉันมักจะถูกฉีกขาดในสถานการณ์นี้: ฉันควรจะโยนIllegalArgumentExceptionหรือNullPointerException? จาก javadocs ทั้งคู่ดูเหมือนจะเหมาะสม มีมาตรฐานที่เข้าใจบ้างไหม? หรือนี่เป็นเพียงหนึ่งในสิ่งที่คุณควรทำในสิ่งที่คุณต้องการและทั้งสองอย่างนั้นถูกต้องจริงเหรอ?

23
รหัสซ้ำ, แท็กเป็นโมฆะหรือรหัสหลักที่มีแฟรกเมนต์อื่นสำหรับ com.google.android.gms.maps.MapFragment
ฉันมีแอปพลิเคชั่นสามแท็บ แต่ละแท็บมีไฟล์. xml สำหรับเลย์เอาต์ของตัวเอง main.xml มีแฟรกเมนต์แผนที่ของตัวเอง เป็นแอปที่แสดงขึ้นเมื่อแอปพลิเคชันเปิดตัวครั้งแรก ทุกอย่างทำงานได้ดียกเว้นเมื่อฉันเปลี่ยนระหว่างแท็บ หากฉันพยายามเปลี่ยนกลับไปที่แท็บชิ้นส่วนแผนที่ฉันได้รับข้อผิดพลาดนี้ การสลับไปมาระหว่างแท็บอื่น ๆ ใช้งานได้ดี มีอะไรผิดปกติที่นี่? นี่คือคลาสหลักและ main.xml ของฉันรวมถึงคลาสที่เกี่ยวข้องที่ฉันใช้ (คุณจะพบบันทึกข้อผิดพลาดที่ด้านล่าง) ชั้นหลัก package com.nfc.demo; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; import android.widget.Toast; public class NFCDemoActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar bar = getActionBar(); …

30
Android Fragment ไม่พบมุมมองสำหรับ ID?
ฉันมีชิ้นส่วนที่ฉันพยายามเพิ่มเข้าไปในมุมมอง FragmentManager fragMgr=getSupportFragmentManager(); feed_parser_activity content = (feed_parser_activity)fragMgr .findFragmentById(R.id.feedContentContainer); FragmentTransaction xaction=fragMgr.beginTransaction(); if (content == null || content.isRemoving()) { content=new feed_parser_activity(item.getLink().toString()); xaction .add(R.id.feedContentContainer, content) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) .addToBackStack(null) .commit(); Log.e("Abstract", "DONE"); } เมื่อประมวลผลรหัสนี้ฉันได้รับข้อผิดพลาดต่อไปนี้ในการแก้ปัญหา .. java.lang.IllegalArgumentException: No view found for id 0x7f080011 for fragment feed_parser_activity{41882f50 #2 id=0x7f080011} feed_parser_activityเป็นแฟรกเมนต์ที่ตั้งค่าเป็นโครงร่าง Fragment ใน xml ฉันใช้ FragmentActivity feed_parser_layoutที่จะเป็นเจ้าภาพส่วนเค้าโครงถือ ฉันกำลังเขียนโค้ดด้านบนถูกต้องหรือไม่

12
java.lang.IllegalArgumentException: พบอักขระที่ไม่ถูกต้องในชื่อเมธอด ชื่อเมธอด HTTP ต้องเป็นโทเค็น
ฉันได้รับข้อมูลการติดตามสแต็กต่ำกว่าเมื่อฉันปรับใช้แอปพลิเคชันของฉันในสภาพแวดล้อม Apache Tomcat 8 ฉันพบข้อผิดพลาดนี้บ่อยครั้งและดูเหมือนว่ากำลังบล็อกเธรด Tomcat อยู่: INFO [http-nio-80-exec-4461] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524) …

9
คีย์ต้องเป็นรหัสทรัพยากรเฉพาะแอปพลิเคชัน
เหตุใดฉันจึงได้รับข้อยกเว้นนี้ 05-18 20:29:38.044: ERROR/AndroidRuntime(5453): java.lang.IllegalArgumentException: The key must be an application-specific resource id. 05-18 20:29:38.044: ERROR/AndroidRuntime(5453): at android.view.View.setTag(View.java:7704) 05-18 20:29:38.044: ERROR/AndroidRuntime(5453): at com.mypkg.viewP.inflateRow(viewP.java:518) บรรทัดในคำถามคือ: ((Button) row.findViewById(R.id.btnPickContact)).setTag(TAG_ONLINE_ID,objContact.onlineid); และฉันได้กำหนดไว้เป็น: private static final int TAG_ONLINE_ID = 1;

10
ผู้รับไม่ได้ลงทะเบียนข้อผิดพลาดข้อยกเว้น?
ในคอนโซลนักพัฒนาซอฟต์แวร์ของฉันมีผู้รายงานข้อผิดพลาดที่ฉันไม่สามารถทำซ้ำบนโทรศัพท์เครื่องใดก็ได้ มีคนหนึ่งฝากข้อความว่าได้รับเมื่อพวกเขาพยายามเปิดหน้าจอการตั้งค่าของบริการแบตเตอรี่ของฉัน ดังที่คุณเห็นจากข้อผิดพลาดมันบอกว่าเครื่องรับไม่ได้ลงทะเบียน java.lang.RuntimeException: Unable to stop service .BatteryService@4616d688: java.lang.IllegalArgumentException: Receiver not registered: com.app.notifyme.BatteryService$BatteryNotifyReceiver@4616d9d0 at android.app.ActivityThread.handleStopService(ActivityThread.java:3164) at android.app.ActivityThread.access$3900(ActivityThread.java:129) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2173) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:4701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalArgumentException: Receiver not registered:com..BatteryService$BatteryNotifyReceiver@4616d9d0 at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:805) at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:859) at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331) …

6
ควรโยน IllegalArgumentException เมื่อใด
ฉันกังวลว่านี่เป็นข้อยกเว้นรันไทม์ดังนั้นจึงควรใช้เท่าที่จำเป็น กรณีการใช้งานมาตรฐาน: void setPercentage(int pct) { if( pct < 0 || pct > 100) { throw new IllegalArgumentException("bad percent"); } } แต่ดูเหมือนว่าจะบังคับให้ออกแบบต่อไปนี้: public void computeScore() throws MyPackageException { try { setPercentage(userInputPercent); } catch(IllegalArgumentException exc){ throw new MyPackageException(exc); } } เพื่อให้กลับมาเป็นข้อยกเว้นที่ถูกตรวจสอบ เอาล่ะ แต่มาดูกันดีกว่า หากคุณป้อนข้อมูลไม่ถูกต้องคุณจะได้รับข้อผิดพลาดรันไทม์ ประการแรกนั่นเป็นนโยบายที่ค่อนข้างยากในการนำไปใช้อย่างสม่ำเสมอเพราะคุณอาจต้องทำการแปลงตรงกันข้าม: public void scanEmail(String emailStr, InputStream mime) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.