کامپیوتربرنامه نویسی

جاوا: استثنا و دست زدن به خود

هر برنامه پایدار عمل تنها در صورتی کد منبع دیباگ است، و هیچ شرایط است که می تواند شرایط پیش بینی نشده باعث وجود دارد. روند ابتلا به شکست ممکن است به روی صحنه برنامه نویسی انجام شده است. برای انجام این کار، توسعه دهنده طول می کشد را به حساب تمام عواقب مورد انتظار و تلاش برای محدود کردن اثر خطا به طوری که آن را نمی تواند با بهره برداری از برنامه تداخل، و یا منجر به فروپاشی آن است.

هنگامی که شما ممکن است به جز دست زدن نیاز

در جاوا، یک استثنا را می توان با ورودی کاربر نادرست ایجاد می شود، بدون نیاز به یک منبع یا ناگهانی برنامه شبکه قطع ارتباط. برای استفاده راحت ایجاد شده توسط توسعه دهنده نرم افزار، شما باید از وقوع شرایط اضطراری را کنترل کنید. مصرف کننده باید نیست که صبر کنید به ترک یک برنامه، برای از دست دادن داده ها به عنوان یک نتیجه از یک مورد انجام نشد، یا فقط بخشی از پیامی نمایش داده میشود که چیزی را اشتباه رفت.

سیستم های انتقال مواد استثنا جاوا

چه به نظر؟ زبان جاوا خود را دارد ساخته شده در قابلیت پردازش استثنا آن است. البته، درصد زیادی از خطا توسط مرحله تدوین دیگر گرفتار، سیستم به طور خودکار که استفاده از آن دیگر امکان پذیر است اطلاع دهید. اما این نوع استثنا که در زمان اجرا رخ می دهد وجود دارد. توسعه دهنده باید قادر به آن را پیش بینی و برای طراحی کد طوری که آن را یک خطا ایجاد نمی شود، و آن را در یک حالت خاص به کار گرفته و تحویل کنترل به شعبه دیگر.

در جاوا، این است که توسط کامپایلر تحمیل به گرفتن یک استثنا، به طوری که مشکلات معمولی شناخته می شوند و یک الگوهای ورزش استاندارد.

محرومیت معمولی

ساده ترین مثال، که در آن شما می توانید یک استثنا را دریافت کنید - این تقسیم بندی. با وجود سادگی آن، از نظر، به عنوان یک تقسیم، ممکن است صفر باشد، که در خطا منجر شود. خوب، اگر ممکن است به پیش بینی ظهور از گذشته و جلوگیری می کند. اما این گزینه است که همیشه در دسترس است، به طوری که ابتلا به استثنا باید به طور مستقیم در صورت "تقسیم بر صفر" سازمان یافته است.

مکانیسم جاوا برای رهگیری خطا در پردازش به نظر می رسد مثل این:

  • شی استثناء پشته ایجاد می شود، و همچنین هر گونه دیگر.
  • البته طبیعی از برنامه قطع شده است.
  • مکانیسم خروج در تلاش است تا راه دیگری را برای ادامه کد؛
  • پیدا کردن یک اعدام امن از برنامه در پردازنده، محل کار و یا ترمیم، و یا تحقق استثنا در یک حالت خاص رخ خواهد داد.

ساده ترین مثال از ایجاد یک خطا ممکن است شبیه به این:

اگر (الف پوچ ==)

پرتاب NullPointerException در جدید ()؛

در اینجا، متغیر a است که در مقدار دهی اولیه بررسی می شود، به عنوان مثال، این است که آیا مرجع به یک شی تهی نیست. اگر این وضعیت بوجود آمده است و نیاز به رسیدگی ویژه، یک استثنا است با پرتاب یک NullPointerException در جدید پرتاب ().

جزئیات کمی از مورد کلمات کلیدی

وقتی که با استثنا است که اغلب لازم به استفاده از جاوا کلمه کلیدی برای اشاره به یک عمل خاص. این زبان پنج برنامه نویسی خود را:

  • امتحان کنید. این کلمه کلیدی حاضر ملاقات نمود، و به این معنی انتقال به یک بخش از کد است که می تواند یک استثنا پرتاب. بلوک پرانتز محدود {}.
  • بگیر. ره گیری نوع استثنا مورد نظر و رسیدگی به آن مناسب است.
  • در نهایت. این کلمه کلیدی اختیاری است و استفاده می شود برای انجام یک قطعه خاص از کد، که به هر حال لازم است، حتی اگر از این قاعده مستثنی گرفتار است. مستقیم افزود: پس از بلوک try.
  • پرتاب - شما اجازه می دهد استثنا جاوا ایجاد از هر نقطه.
  • پرتاب - یک کلمه کلیدی است که در متد قرار داده است. به این معنی که کد زیر را می توانید یک استثنا از این نوع جاوا بزنند. این روش می تواند کار نه به عنوان او انتظار می رود - این علامت به عنوان یک سیگنال به توسعه دهندگان است که باید در نظر داشت عمل می کند.

نواز با امتحان کنید

انتشار به استثنا جاوا، به طور طبیعی فرض می شود که از آن خواهد شد در یک حالت خاص گرفته شده است. راحت ترین راه برای انجام آن، اگر قسمت کد خاموش است در یک بلوک حصار کشیدند. که ممکن است حاوی یک استثنا. هنگامی که شما اجرا از این کد، ماشین مجازی یک وضعیت غیر منتظره پیدا کنید، درک این است که یک بلوک مهم وجود دارد و انتقال کنترل به ایستگاه با پردازش.

کد جاوا در را امتحان کنید بلوک خاص، که در آن ممکن است یک استثنا پیچیده می شود. بنابراین، او چندین موقعیت پیش بینی نشده است که در همان محل، نمی raspolzayas کد گرفتار قرار داده است.

کد معمول ترین به واحد پردازش به شرح زیر است:

سعی کنید {

// در اینجا برخی از کد که ممکن است یک استثنا تولید است

} بگیر (identifikator_1 Tip_isklyucheniya_1) {

// در اینجا این است به جز دست زدن وجود دارد، با توجه به نوع و شرایط آن؛

} بگیر (identifikator_2 Tip_isklyucheniya_2) {

// در اینجا این است به جز دست زدن وجود دارد، با توجه به نوع و شرایط آن؛

}

گرفتن کلید واژه گزارش می دهد که کد و اسکن آن را برای یک استثنا، به درمان می شود به شرح زیر است، به شرطی که آن را با نوع آن مطابقت دارد. شناسه میتواند در پردازش بلوک کد را به عنوان آرگومان استفاده می شود.

سرانجام

همانطور که در فصل قبل روشن شد، بلوک catch گرفتن استثنا و پردازش آنها. اما خیلی اوقات وضعیت ناشی از کجا باید برخی از کد اجرا شود، صرف نظر از اینکه آنها اشتباهات گرفتار شده بودند. برای این است که کلمه کلیدی در نهایت وجود دارد. آن استفاده می شود برای افزایش ارزش از شمارنده های مختلف، بستن فایل و اتصالات شبکه می باشد.

این طرح چندین بلوک catch اختراع روش گرفتن استثنا. به عنوان مثال، کد موجود در تلاش تولید وضعیت غیر منتظره مانند سرد. پس از آن، کنسول نمایش داده خواهد شد بیان «گرفتار سرد!» و «آیا این چیزی است به تشویق در مورد؟». این است که، در نهایت بلوک در هر صورت اجرا می شود.

در واقع، یک راه برای جلوگیری از تحریک در نهایت وجود دارد. این است که با تکمیل ماشین مجازی متصل می شود. یافتن چگونگی پیاده سازی آن، آن را در اینترنت فضاهای باز امکان پذیر است.

جستجو با کلمات کلیدی

پرتاب تولید یک استثنا. ترکیب آن به شرح زیر است:

پرتاب NewException جدید ()؛

یک استثنا جدید به نوع NewException ایجاد می شود وجود دارد (). به عنوان یک نوع را می توان مورد استفاده قرار گیرد در حال حاضر در کلاس های استاندارد کتابخانه جاوا و قبلا توسط توسعهدهنده از تولید خود را تعریف شده است.

این طراحی بخشی از شرح هر روش، که پاسخ پس از آن باید در بلوک try رخ می دهد، به منظور قادر به آن را مختل کند.

کلید واژه می اندازد

اگر در فرایند توسعه یک وضعیت که در آن روش می تواند یک استثنا پرتاب، اما قادر به تحمل درستی نیست. برای این منظور، در متد مشخص کلمه می اندازد و نوع استثنا ممکن است.

این برچسب یک نوع از شاخص برای توسعه دهندگان مشتری است که روش قادر به تحمل همان استثنا آنها نیست. علاوه بر این، در صورتی که نوع خطا بررسی می شود، سپس کامپایلر صراحت را مجبور برای آن را بپرسید.

سعی کنید به منابع

جاوا نسخه 7 به توسعه دهندگان شامل یک نوآوری بزرگ، به عنوان یک بلوک درمان امتحان کنید با منابع است.

بسیاری از اشیاء در جاوا را پس از استفاده باید تعطیل برای حفظ منابع. پیش از آن تا به حال به این را به حساب و متوقف کردن این موارد به صورت دستی. اما در حال حاضر، آنها رابط AutoClosable ظاهر شد. این کمک می کند تا به طور خودکار اشیاء در حال حاضر مورد استفاده قرار قرار داده شده در یک بلوک try را ببندید. از طریق این روش آن را تبدیل به راحت تر به نوشتن کد در خوانایی خود را به طور قابل توجهی افزایش یافته است.

کلاس های خود استثنا جاوا

سازندگان این زبان برنامه نویسی توصیف به حساب بسیاری از جنبه های نوع طراحی شرایط اضطراری صورت گرفت. با این حال، همه گزینه های برای جلوگیری از نتیجه حوادث کار نخواهد کرد، بنابراین در جاوا قابلیت تعریف استثنا خود را اجرا، آن را متناسب با نیازهای کد خاص است.

ساده ترین راه برای ایجاد - به ارث می برند از مناسب ترین را به زمینه شی.

اتفاق افتاده است به از استثنا به ارث می برند وجود دارد، طبقه است که برای تعریف استثنا خود را. در MyException دو سازنده - به طور پیش فرض، دوم - با این استدلال نوع MSG رشته.

سپس، در روش FullConstructors کلاس درس عمومی اجرا F، که شامل امضای اندازد MyException. این بدان معنی است که کلمه کلیدی F می تواند مانند استثنا جاوا MyException پرتاب. علاوه بر این، در بدن روش تولید متن خروجی این اطلاعات را به کنسول خود و MyException نسل واقعی، توسط پرتاب.

روش دوم کمی متفاوت از یکی از اولین که هنگامی که شما یک استثنا ایجاد، آن است که با تصویب یک پارامتر رشته، خواهد شد که در کنسول در ابتلا به منعکس شده است. در اصلی آن را روشن است که f () و g () در یک بررسی کنید قرار داده و گرفتن کلمه کلیدی پیکربندی را به تصرف MyException. نتیجه پردازش را به نمایش یک پیغام خطا به کنسول:

بنابراین آن را به اضافه کردن استثنا جاوا، با دست خود.

استثنا معماری

همانطور که با تمام اشیاء در جاوا، استثنا نیز به ارث برده و یک ساختار سلسله مراتبی. عنصر ریشه ای تمام اشتباهات پرتاب در این زبان برنامه نویسی کلاس java.lang.Throwable است. به ارث برده از او دو نوع - خطا و استثنا.

خطا - سیگنال خطای بحرانی و استثنا جاوا بدون کنترل است. رهگیری و پردازش داده ها از جمله در بسیاری از موارد در مرحله طراحی رخ می دهد و نه نیاز به معرفی در کد برنامه نهایی است.

کلاس بیشتر مورد استفاده برای ایجاد و تجزیه و تحلیل استثنا قاعده مستثنی است. که به نوبه خود است، به چند شاخه، از جمله RuntimeException تقسیم شده است. توسط RuntimeException استثنا زمان اجرا هستند، این است که، در طول برنامه اتفاق می افتد. همه کلاس های مشتق شده از آن اثبات ناپذیر است.

اغلب استثنا وجود دارد

در استثنا جاوا، لیست که در زیر ارائه شده، اغلب استفاده می شود، بنابراین شما باید هر یک از آنها به تفصیل به شرح:

  • ArithmeticException. این خدمات عبارتند از خطاهای مرتبط با عملیات محاسباتی. نمونه بارز - تقسیم بر صفر.
  • ArrayIndexOutOfBoundsException - درخواست تجدید نظر به تعداد عنصر آرایه است که بیش از کل طول آن است.
  • ArrayStoreException - تلاش برای اختصاص یک نوع عناصر ناسازگار از آرایه.
  • ClassCastException - تلاش برای آوردن اشتباه نوعی به نوع دیگر.
  • IllegalArgumentException - با استفاده از استدلال اشتباه در پاسخ روش.
  • NegativeArraySizeException - یک استثنا زمانی که شما یک مجموعه ای از اندازه منفی ایجاد کنید.
  • NullPointerException در - سوء استفاده از منابع به تهی.
  • NumberFormatException - هنگامی رخ میدهد که تبدیل رشته به عدد صحیح اشتباه.
  • UnsupportedOperationException - عملیات پشتیبانی نمی شود.

این نمونه ها نشان دهنده نوع استثنا جاوا بدون کنترل. اما تا بررسی نگاه:

  • ClassNotFoundException - کلاس یافت نشد.
  • IllegalAcccessException - محدود کردن دسترسی به کلاس.
  • InterruptedException - وقفه در جریان است.
  • NoSuchFieldException - هیچ فیلد ضروری است.

تفسیر استثنا

صحبت از استثنائات اغلب مواجه می شوند باید توجه داشت که تفسیر آنها در طراحی، می توان به اشتباه درک شده است. بعد یک لیست کوتاه توضیح در جزئیات بیشتر، که در آن ممکن است یک وضعیت غیر منتظره وجود دارد.

NullPointerException در. اولین مورد زمانی که یک استثنا وجود دارد، این است که درخواست تجدید نظر به یک مرجع به یک شی است که به تهی برابر. آن را نیز به روش نمونه کلاس صفر گسترش می یابد. NullPointerException در ممکن است در مورد به دست آوردن یک طول آرایه تهی برابر پرتاب می شود. برای جلوگیری از چنین شرایط به صورت دوره ای در سایت های تهی تیک بزنید.

ArrayIndexOutOfBoundsException. هر برنامه نمی تواند بدون استفاده از آرایه وجود دارد. بر این اساس، توسل مکرر به آن می تواند تولید و خطا. استثنا رخ می دهد که یک توسعه دهنده تلاش برای دسترسی به یک عنصر آرایه است که در فهرست شاخص نیست. به عنوان مثال، مقدار مورد درخواست است بالا یا زیر طول صفر. خیلی اوقات یک نتیجه از این واقعیت است که در آرایه با امتیاز صفر شروع می شود.

یافته

سیستم های انتقال مواد استثنا جاوا - یک محیط ابزار قدرتمند، که تا حد زیادی تسهیل کار از برنامه نویس و اجازه می دهد تا او را به ایجاد یک تمیز و عاری از خطا کد. در برنامه عملکرد چگونه صاف و پایدار بستگی به وضعیت و شهرت از توسعه دهنده.

البته در بیشتر یا کمتر برنامه های ساده برای ردیابی ناهنجار بسیار ساده تر. اما در مجتمع های خودکار بزرگ برای چند صد هزار خط آن را تنها به عنوان یک نتیجه از تست بلند مدت و اشکال زدایی امکان پذیر است.

برای خطا استثنا جاوا که از آن در برخی از برنامه های کاربردی بوجود می آیند، برخی از شرکت های ارائه پاداش زمانی که آنها پیدا کردن علاقه مندان. به خصوص توسط کسانی که باعث نقض از نرم افزار سیاست امنیتی قدردانی است.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 fa.delachieve.com. Theme powered by WordPress.