Springboot Learning - إعدادات معالجة الاستثناءات العالمية (العودة إلى JSON)
يحتاج
يوضح
ControllerAdvice
هذا التعليق التوضيحي هو شرح جديد تم إضافته بعد الربيع 2.3. يتم استخدامه بشكل أساسي لتقديم المساعدة لبعض التحسينات المنخفضة الغازية للاحتياجات الشائعة لوحدة التحكم ، ويستخدم في طريقة التعليقات التوضيحية requestmapping.
exceptionHandler
هذا التعليق التوضيحي هو شرح يستخدم مع exceptionHandler. إنه معالج خطأ مخصص. يمكنك تجميع سلسلة JSON بنفسك والعودة إلى الصفحة.
شفرة
قم بإنشاء فئة معالجة استثناء عالمي على النحو التالي:
إذا كانت الاستثناءات المختلفة لديها عمليات مختلفة للتنفيذ ، فأنت بحاجة فقط إلى تغيير قيمة @استثناء Handler لتكون مختلفة. يمكن التعامل مع استثناءات مختلفة متعددة في نفس الوقت ، ولكن لا يمكن أن تحدث حالة التضمين.
استيراد javax.servlet.http.httpservletrequest ؛ استيراد org.springframework.web.bind.annotation.controlleradvice GlobalExceptionHandler { / ** * جميع الاستثناءات التي تم الإبلاغ عن الأخطاء * param request * param استثناء * return * @throws استثناء * / exceptionHandler (value = inscsters.class) السلسلة العامة allexceptionhandler (httpservletrequest ، استثناء استثناء) استثناء {استثناء. System.out.println ("لقد أبلغت عن خطأ:"+استثناء. getLocalizedMessage ()) ؛ System.out.println ("لقد أبلغت عن خطأ:"+استثناء. getCause ()) ؛ System.out.println ("لقد أبلغت عن خطأ:"+استثناء. getSuappressed ()) ؛ System.out.println ("لقد أبلغت عن خطأ:"+استثناء. getMessage ()) ؛ System.out.println ("لقد أبلغت عن خطأ:"+استثناء. getStackTrace ()) ؛ إرجاع "استثناء الخادم ، يرجى الاتصال بالمسؤول!" ؛ }}محاكاة استثناء فئة رمي. المثال التالي هو رمي استثناء مؤشر فارغ والمقام ليس استثناء
استيراد org.springframework.steretype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapp Test () {message msg = null ؛ msg.toString () ؛ CreateException () ؛ العودة "أنا طبيعي" ؛ } private void createException () {int i = 5/0 ؛ }}ابدأ Springboot ، نتائج التنفيذ
لأن السلسلة التي تم إرجاعها ، يمكنك أيضًا استخدام فئة أدوات JSON لتغليفها وإعادة سلسلة JSON
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.