জ্ঞান বনাম দক্ষতা
কলেজ আমাদের শিখিয়েছে যে তত্ত্ব এবং অনুশীলনের মধ্যে কোন বড় পার্থক্য নেই। ঠিক আছে, আপনি নিশ্চয়ই বুঝতে পেরেছেন যে এটি একই নয়। কিন্তু আপনি মূল পার্থক্য দেখতে পাচ্ছেন না। তবুও একটা আছে। বেশিরভাগ লোক "আমি জানি" এবং "আমি পারি" এর মধ্যে সমতা চিহ্নটি রাখে। আপনি করবেন? কিভাবে কয়েক উদাহরণ সম্পর্কে?- আমি জানি যে ধূমপান আমার জন্য খারাপ, কিন্তু আমি ধূমপান করি।
- আমি জানি যে ফাস্ট-ফুড আমার জন্য খারাপ, কিন্তু আমি তা খাই।
- আমি ট্রাফিক নিয়ম জানি কিন্তু গাড়ি চালাতে পারি না।
- আমি জানি জগিং করা আমার জন্য ভালো কিন্তু আমি সকালে জগিং করি না।
আপনি একটি নতুন স্তরে পৌঁছেছেন
লেভেল 9
1 রিশা, স্ট্যাক ট্রেস
- আরে! আজ আমি আপনাকে বলব স্ট্যাক ট্রেস কি। কিন্তু প্রথমে আমাকে স্ট্যাক কি ব্যাখ্যা করা যাক. - কাগজপত্রের স্তুপ কল্পনা করুন - একটি নির্দিষ্ট কেরানির জন্য অ্যাসাইনমেন্ট। একটি নতুন অ্যাসাইনমেন্ট স্ট্যাকের শীর্ষে রাখা যেতে পারে এবং তিনি একটি স্ট্যাকের শীর্ষ থেকে একটি অ্যাসাইনমেন্ট নেবেন। সুতরাং, অ্যাসাইনমেন্টগুলি আগে আসলে নয়। প্রতিবার ক্লার্ক সেই অ্যাসাইনমেন্ট নেয় যা শেষ আসে। সংগ্রহের এই ধরনের কাঠামোকে স্ট্যাক বলা হয় । - জাভাতে, একটি বিশেষ সংগ্রহ রয়েছে - স্ট্যাক। এই সংগ্রহে পদ্ধতি রয়েছে "একটি উপাদান যোগ করুন" এবং "একটি উপাদান নিয়ে যান আপনি ইতিমধ্যেই জানেন, যোগ করা শেষ উপাদানটি প্রথমে নেওয়া হবে। - হুম। এটা কঠিন নয়, আমি অনুমান. - ঠিক আছে। তারপর আমাকে ব্যাখ্যা করা যাক কি একটি স্ট্যাক ট্রেসহয় - কল্পনা করুন যে জাভা ফাংশনে А ফাংশন B কে কল করে এবং পরেরটি ফাংশন C কে কল করে , যা তার পরিবর্তে, ফাংশনটিকে কল করে । সুতরাং, ফাংশন B থেকে প্রস্থান করার জন্য , আপনাকে প্রথমে ফাংশন C থেকে প্রস্থান করতে হবে এবং এটি করার জন্য আপনাকে ফাংশন D থেকে প্রস্থান করতে হবে । এটি একটি স্ট্যাকের অনুরূপ। - আর মিল কি? - স্ট্যাকের মধ্যে, একটি নির্দিষ্ট অ্যাসাইনমেন্ট পেতে, আপনাকে উপরে রাখা সমস্ত অ্যাসাইনমেন্টগুলিও সম্পূর্ণ করতে হবে। - ঠিক আছে, এটি একটি উপমা, কিন্তু আমি নিশ্চিত নই যে আমি সবকিছু ঠিক বুঝতে পেরেছি কিনা। - এখানে দেখুন. জাভাতে একটি স্ট্যাক উপাদানগুলির একটি সেট। এটি একটি স্ট্যাকের মধ্যে কাগজের শীট মত. উপরের থেকে তৃতীয়টি নিতে, আপনাকে অবশ্যই দ্বিতীয়টি নিতে হবে, তবে তার আগে আপনাকে প্রথমটি নিতে হবে। আপনি সর্বদা শীট রাখতে এবং নিতে পারেন, তবে আপনি সেগুলি কেবল উপরে রাখতে পারেন এবং কেবল উপরে থেকে নিতে পারেন। একই ফাংশন কল প্রযোজ্য. ফাংশন А কল ফাংশন B , পরবর্তী কল ফাংশন C। А থেকে প্রস্থান করতে , আপনাকে প্রথমে B থেকে প্রস্থান করতে হবে এবং এটি করার জন্য আপনাকে C থেকে প্রস্থান করতে হবে । - একটি মিনিট অপেক্ষা করুন. যদি আমি এটি ঠিক করে থাকি, তাহলে পুরো স্ট্যাকটি "স্ট্যাকের উপর রাখা শেষ শীটটি নেওয়া যেতে পারে" এবং "প্রথমে, শেষ বলা ফাংশনটি প্রস্থান করা উচিত" এ পরিণত হয়। তাই নাকি? - হ্যাঁ. সুতরাং, ফাংশন কলের ক্রম হল "ফাংশন কল স্ট্যাক", বা সহজভাবে "কল স্ট্যাক"। শেষ নামক ফাংশনটি প্রথমে শেষ করতে হবে। আসুন উদাহরণটি দেখি: - ঠিক আছে। ফাংশন কল দিয়ে সবকিছু পরিষ্কার, আমি অনুমান করি। কিন্তু এই StackTraceElement কি ? - জাভা ভার্চুয়াল মেশিন সব ফাংশন কল লগ. এই উদ্দেশ্যে এটি একটি বিশেষ সংগ্রহ আছে - স্ট্যাক। যখন একটি ফাংশন অন্যটিকে কল করে, JVM এই স্ট্যাকের মধ্যে একটি নতুন উপাদান StackTraceElement রাখে। ফাংশন শেষ হলে, উপাদানটি স্ট্যাক থেকে মুছে ফেলা হয়। সুতরাং, এই স্ট্যাকটি সর্বদা "ফাংশন কল স্ট্যাকের" বর্তমান অবস্থা সম্পর্কে আপ-টু-ডেট তথ্য সঞ্চয় করে। - প্রতিটি StackTraceElementবলা পদ্ধতি সম্পর্কে তথ্য রয়েছে। সুতরাং আপনি getMethodName ব্যবহার করে এই পদ্ধতির নাম পেতে পারেন । - উপরের উদাহরণ এটি দেখায়:- "কল স্ট্যাক" পান:
- প্রতিটির জন্য লুপ ব্যবহার করে অ্যারেটি পুনরাবৃত্তি করুন । আমি আশা করি আপনি এটি ভুলে যাননি।
- System.out এ প্রিন্ট পদ্ধতির নাম ।
2 দিয়েগো, স্ট্যাক ট্রেস ডিসপ্লেতে টাস্ক
- আরে, আমিগো! স্ক্রিনে একটি স্ট্যাক ট্রেস প্রদর্শন করার জন্য এখানে একটি ছোট কাজ।কাজ | |
---|---|
1 | প্রতিটি পদ্ধতির স্ট্যাকট্রেস রিটার্ন করা উচিত পাঁচটি পদ্ধতি যা একে অপরকে কল করে। প্রতিটি পদ্ধতির স্ট্যাকট্রেস ফিরিয়ে দেওয়া উচিত। |
2 | StackTrace আবার পাঁচটি পদ্ধতি লিখুন যা একে অপরকে কল করে। প্রতিটি পদ্ধতির তার কলার পদ্ধতির নাম ফেরত দেওয়া উচিত। আপনি StackTrace ব্যবহার করে কলার পদ্ধতি পেতে পারেন। |
3 | পদ্ধতিটি কোডের লাইন নম্বরটি ফেরত দিতে হবে যেটি একে অপরকে কল করার পাঁচটি পদ্ধতি লিখুন থেকে এই পদ্ধতিটি কল করা হয়েছিল। প্রতিটি পদ্ধতিতে কোডের লাইন নম্বর ফেরত দেওয়া উচিত যেটি থেকে এই পদ্ধতিটি কল করা হয়েছিল। element.getLineNumber() ফাংশনটি ব্যবহার করুন । |
4 | 10টি কলের স্ট্যাক ট্রেস 10টি কলের স্ট্যাক ট্রেস পেতে কোড লিখুন। |
5 | পদ্ধতিটি একটি ফলাফল প্রদান করবে - এর স্ট্যাক ট্রেস গভীরতা একটি পদ্ধতি লিখুন যা এটির স্ট্যাক ট্রেস গভীরতা প্রদর্শন করে এবং ফেরত দেয়। স্ট্যাক ট্রেস গভীরতা হল এর পদ্ধতির সংখ্যা (তালিকায় উপাদানের সংখ্যা)। |
3 এলি, ত্রুটি এবং ব্যতিক্রম
- আরে, আমিগো! আজ আমরা একটি খুব আকর্ষণীয় পাঠ আছে. আমি আপনাকে ব্যতিক্রম সম্পর্কে বলব। ব্যতিক্রম হল প্রোগ্রামে ত্রুটি নিয়ন্ত্রণের একটি বিশেষ ব্যবস্থা। এখানে কিছু ত্রুটির উদাহরণ রয়েছে যা প্রোগ্রামে ঘটতে পারে:- প্রোগ্রামটি সম্পূর্ণ ডিস্কে একটি ফাইল লেখার চেষ্টা করে।
- প্রোগ্রামটি একটি ভেরিয়েবলের একটি পদ্ধতিকে কল করার চেষ্টা করে যা নাল রেফারেন্স সংরক্ষণ করে।
- প্রোগ্রামটি একটি সংখ্যাকে 0 দ্বারা ভাগ করার চেষ্টা করে।
- যখন একটি ত্রুটি ঘটে, জাভা ভার্চুয়াল মেশিন একটি বিশেষ বস্তু তৈরি করে - একটি ব্যতিক্রম - ত্রুটি সম্পর্কে সমস্ত তথ্য ধারণ করে। বিভিন্ন ত্রুটির জন্য বিভিন্ন ব্যতিক্রম আছে।
- তারপর এই ব্যতিক্রমটি প্রোগ্রামটিকে বর্তমান ফাংশনকে অবিলম্বে বাধা দিতে বাধ্য করে এবং পরবর্তী ফাংশন, যতক্ষণ না এটি মূল পদ্ধতি থেকে বেরিয়ে আসে। এর পরে প্রোগ্রামটি বন্ধ হয়ে যায়। জাভা ডেভেলপাররা এই প্রক্রিয়াটিকে "কল ব্যাক স্ট্যাক রোল" বলে।
- ট্রাই ব্লকের ভিতরে যদি ব্যতিক্রম ঘটে , তবে এই ব্লকের কোডটি আর কার্যকর করা হয় না, তবে ব্লক ক্যাচের সঞ্চালন শুরু হয়।
- যদি কোন ব্যতিক্রম ঘটে না, ট্রাই ব্লকটি শেষ পর্যন্ত কার্যকর করা হয় , এবং ক্যাচ কখনই কার্যকর করা হয় না ।
4 Elly, RuntimeException, থ্রোস
- আমি আজ অন্য বিষয় আনার সিদ্ধান্ত নিয়েছে. জাভাতে, সমস্ত ব্যতিক্রম দুটি প্রকারে বিভক্ত - নিয়ন্ত্রিত/চেক করা এবং অনিয়ন্ত্রিত/আনচেক করা । চেক করা ব্যতিক্রমগুলি অবশ্যই ধরা হবে, আনচেক করা ধরা যেতে পারে তবে এটির প্রয়োজন নেই । - উদ্দেশ্যমূলকভাবে একটি কোডে ব্যতিক্রম নিক্ষেপ করা কি সম্ভব? - আপনার কোডে, আপনি নিজেই ব্যতিক্রম নিক্ষেপ করতে পারেন। আপনি এমনকি আপনার নিজের ব্যতিক্রম লিখতে পারেন. কিন্তু আমরা পরে এই গর্তে গভীর করব। এখন জাভা ভার্চুয়াল মেশিন দ্বারা নিক্ষিপ্ত ব্যতিক্রমগুলির সাথে কীভাবে কাজ করবেন তা শিখি। - ঠিক আছে. - ব্যতিক্রম থাকলে ClassNotFoundException এবং FileNotFoundExceptionএকটি পদ্ধতিতে নিক্ষিপ্ত (আবির্ভূত) হয়, প্রোগ্রামারকে একটি পদ্ধতির (পদ্ধতি শিরোনাম) স্বাক্ষরে সেগুলি নির্দিষ্ট করতে হবে। এই ধরনের ব্যতিক্রম চেক করা হয়. এটি সাধারণত এটির মতো দেখায়: - তাই, আমরা শুধু থ্রো লিখি এবং কমা দ্বারা বিভক্ত ব্যতিক্রমগুলি তালিকাভুক্ত করি। ঠিক? তাই নাকি? - হ্যাঁ. কিন্তু আরেকটি মজার বিষয় আছে। নীচের উদাহরণটি সংকলিত করার জন্য, মেথড 1() কে কল করার পদ্ধতিটিকে হয় এই ব্যতিক্রমগুলি ধরতে হবে বা সেগুলিকে এগিয়ে দিতে হবে। আপনি যদি চেক করা ব্যতিক্রমটি এগিয়ে দিতে চান তবে আপনাকে এটি পদ্ধতির শিরোনামে উল্লেখ করতে হবে । - আবারও, যদি মূল পদ্ধতিতে, আপনি এমন একটি পদ্ধতিকে কল করতে চান যার শিরোনাম বাক্যাংশে FileNotFoundException নিক্ষেপ করে , …তারপর আপনাকে এই দুটি জিনিসের মধ্যে একটি করতে হবে:- ব্যতিক্রমগুলি ধরতে FileNotFoundException, …
আপনাকে কোডটি মুড়ে দিতে হবে যেখানে আপনি একটি বিপজ্জনক পদ্ধতি কল করার চেষ্টা করুন-ক্যাচ ব্লক দিয়ে - ব্যতিক্রম ধরতে হবে না FileNotFoundException, …
5 রিশা, কল স্ট্যাক রোলিং, ব্যতিক্রমগুলিতে এটি কীভাবে করবেন
- ব্যতিক্রমগুলি কীভাবে কাজ করে সে সম্পর্কে আমি আপনাকে আরও কিছু বলতে চাই। নীচের উদাহরণটি ব্যাখ্যা করে যে: - আমি এটি পাই না। - ঠিক আছে. আমি ব্যাখ্যা করব কি হচ্ছে. - বাম দিকের উদাহরণে, আমরা চেইন অর্ডারে বেশ কয়েকটি পদ্ধতিকে কল করি। মেথড 2() এ আমরা বিশেষভাবে একটি ব্যতিক্রম তৈরি করি এবং নিক্ষেপ করি (একটি ত্রুটি শুরু করতে)। - ডানদিকের উদাহরণটি দেখায় কি ঘটে। পদ্ধতি 2() দেখুন । এটিই একটি ব্যতিক্রম সৃষ্টিতে রূপান্তরিত হয়: আমরা RuntimeException টাইপের একটি অবজেক্ট তৈরি করি, এটিকে একটি বিশেষ পরিবর্তনশীল ব্যতিক্রমে সংরক্ষণ করি এবং অবিলম্বে পদ্ধতি থেকে প্রস্থান করি – রিটার্ন । - মেথড 1 এ, মেথড 2 কল করার পরে একটি চেক আছে,যদি একটি ব্যতিক্রম হয় বা না হয়; যদি একটি ব্যতিক্রম থাকে, তাহলে method1 অবিলম্বে বন্ধ হয়ে যায়। প্রতিটি (!) জাভা পদ্ধতিতে কল করার পরে এই চেকটি পরোক্ষভাবে করা হয়। - কি দারুন! - ঠিক। - মেথড মেইন -এর ডানদিকের কলামে আমি লিখেছিলাম ট্রাই-ক্যাচ ব্লক দ্বারা ব্যতিক্রম ধরা পড়লে কী হয় । যদি কোন ব্যতিক্রম না হয়, কোড পরিকল্পনা অনুযায়ী কার্যকর করা অব্যাহত থাকে। ক্যাচ- এ উল্লেখিত প্রকারের ব্যতিক্রম হলে আমরা তা পরিচালনা করি। - এবং নিক্ষেপ এবং instanceof মানে কি? - বাম দিকের শেষ লাইনটি দেখুন নতুন RuntimeException(গুলি). এইভাবে আমরা একটি ব্যতিক্রম তৈরি করি এবং নিক্ষেপ করি। এইটা শুধুমাত্র একটা উদাহরণ. আমরা এতদূর এটা করব না। - ডান ব্লকে « а instanceof B » কমান্ডটি ব্যবহার করে আমরা অবজেক্ট a- এ B টাইপ আছে কিনা তা পরীক্ষা করি । অর্থাৎ, পরিবর্তনশীল ব্যতিক্রমে সংরক্ষিত বস্তুর RuntimeException টাইপ আছে কিনা । এটি একটি যৌক্তিক অভিব্যক্তি। - ওয়েল, এটা একটু বিট পরিষ্কার হচ্ছে.6 দিয়েগো, ব্যতিক্রম ধরা টাস্ক
- এখানে দেখুন! চাচা দিয়েগো আপনার জন্য ধরার জন্য কয়েকটি কাজ নিয়ে এসেছেন। তোমার জন্য সৌভাগ্যের কামনা. আমি মনে করি আপনি এটা প্রয়োজন হবে. হে. - আরে, আমিগো! এখানে কিছু আকর্ষণীয় ব্যতিক্রম ধরার কাজ আছে।কাজ ধরা | |
---|---|
1 | 1. সংখ্যার সাথে কাজ করার সময় ব্যতিক্রম কোডটি চালানোর সময় যে ব্যতিক্রম ঘটে তা ধরুন: int a = 42 / 0; স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন |
2 | 2. স্ট্রিং দিয়ে কাজ করার সময় ব্যতিক্রম কোড চালানোর সময় যে ব্যতিক্রম ঘটে তা ধরুন: স্ট্রিং s = নাল; স্ট্রিং m = s.toLowerCase(); স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন। |
3 | 3. অ্যারেগুলির সাথে কাজ করার সময় ব্যতিক্রম কোডটি চালানোর সময় যে ব্যতিক্রমটি ঘটে তা ধরুন: int[] m = new int[2]; m[8] = 5; স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন। |
4 | 4. তালিকা সংগ্রহের সাথে অপারেটিং করার সময় ব্যতিক্রমটি ধরুন যা কোড চালানোর সময় ঘটে: ArrayList<String> list = new ArrayList<String>(); স্ট্রিং s = list.get(18); স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন। |
5 | 5. মানচিত্র সংগ্রহের সাথে অপারেটিং করার সময় ব্যতিক্রমটি ধরুন যা কোড চালানোর সময় ঘটে: HashMap<String, String> map = new HashMap<String, String>(null); map.put(নাল, নাল); map.remove(null); স্ক্রিনে ব্যতিক্রম প্রদর্শন করুন, এর ধরন উল্লেখ করুন। |
7 রিশা, কিভাবে একাধিক ক্যাচ কাজ করে
- এখন, আরো কিছু আকর্ষণীয় বক্তৃতা. আমি শেখাতে খুব পছন্দ করি। - আমি আপনাকে বলতে চাই কিভাবে একটি একাধিক ক্যাচ কাজ করে। আসলে এটা খুবই সহজ: ব্লক চেষ্টায় একটি ব্যতিক্রম ঘটলে , প্রোগ্রাম এক্সিকিউশন প্রথম ক্যাচে স্থানান্তরিত হয় । - যদি ব্লক ক্যাচের বন্ধনীতে উল্লেখিত ধরনটি ব্যতিক্রম-অবজেক্টের প্রকারের মতই হয়, তাহলে কোড এক্সিকিউশন {} এর ভিতরে শুরু হয়। অন্যথায় আমরা পরবর্তী ক্যাচ যেতে . চেক সেখানে পুনরাবৃত্তি হয়. - যদি আর কোনো ক্যাচ ব্লক না থাকে , কিন্তু ব্যতিক্রম ধরা না পড়ে, তাহলে এটিকে সামনে ছুড়ে দেওয়া হয়, এবং বর্তমান পদ্ধতিটি বাধাগ্রস্ত হয়। - আমি দেখি. সেই ক্যাচটি কার্যকর করা হবে, যার ধরনটি ব্যতিক্রমের প্রকারের সাথে মেলে। - হ্যাঁ ঠিক. প্রকৃতপক্ষে, এটি একটু বেশি জটিল: মূল বিষয় হল ক্লাসগুলি একে অপরের থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে। যদি "গরু" শ্রেণীটি "পশু" শ্রেণী থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয়, তবে "গরু" ধরণের বস্তুটি কেবল "গরু" টাইপের একটি পরিবর্তনশীল নয়, "পশু" টাইপের একটি পরিবর্তনশীলেও সংরক্ষণ করা যেতে পারে। . - তাতে কি? - যেহেতু সমস্ত ব্যতিক্রম ক্লাস Exception বা RuntimeException থেকে উত্তরাধিকারসূত্রে প্রাপ্ত (যা ব্যতিক্রম থেকেও উত্তরাধিকারসূত্রে প্রাপ্ত ), সেগুলিকে ক্যাচ (ব্যতিক্রম e) বা ক্যাচ (RuntimeException e) কমান্ড ব্যবহার করে ধরা যেতে পারে । - তাতে কি? - এই যে মানে,প্রথমত, আপনি catch(Exception e) কমান্ড ব্যবহার করে যেকোনো ব্যতিক্রম ধরতে পারেন । দ্বিতীয়ত, ক্যাচ ব্লকের ক্রম গুরুত্বপূর্ণ। উদাহরণ: - 0 দ্বারা বিভাজনের ফলে পাটিগণিত ব্যতিক্রম দ্বিতীয় ক্যাচে ধরা পড়ে। - নীচের উদাহরণে, ArithmeticException প্রথম ক্যাচে ধরা পড়েছে , কারণ সমস্ত ব্যতিক্রমের ক্লাস ব্যতিক্রম থেকে উত্তরাধিকারসূত্রে প্রাপ্ত। সুতরাং, ব্যতিক্রম কোন ব্যতিক্রম ক্যাচ . - নীচের উদাহরণে, ব্যতিক্রম ArithmeticException ধরা হয় না, কিন্তু কলিং পদ্ধতিতে এগিয়ে দেওয়া হয়। - ওয়েল, এটা এখন পরিষ্কার হচ্ছে. এই ব্যতিক্রমগুলি এত সহজ নয়। - এটা শুধু তাই মনে হয়. আসলে, এটি জাভাতে সবচেয়ে সহজ জিনিসগুলির মধ্যে একটি। - এটা নিয়ে সন্তুষ্ট বা বিচলিত হবো কিনা তা নিয়ে আমার সন্দেহ আছে...8 দিয়েগো, একাধিক ব্যতিক্রম ক্যাচ টাস্ক
- আরে, আমিগো! গতকাল আমি মাতাল হয়েছি এবং আপনার কাজগুলিকে অতিরিক্ত জটিল করে তুলেছি, কিন্তু আমি আশা করি আপনার পক্ষ থেকে কোন কঠিন অনুভূতি নেই এবং আপনি তাদের সব সমাধান করবেন? এটা আপনার নিজের ভালোর জন্য। এখানে:কাজ | |
---|---|
1 | 1. ব্যতিক্রমগুলি এমন একটি পদ্ধতি রয়েছে যা ব্যতিক্রম থেকে উত্তরাধিকারসূত্রে প্রাপ্ত দুটি ব্যতিক্রম ছুঁড়ে দেয় , এবং অন্য দুটিটি RuntimeException থেকে উত্তরাধিকারসূত্রে পাওয়া যায় : NullPointerException , ArithmeticException , FileNotFoundException এবং URISyntaxException । আপনাকে NullPointerException এবং FileNotFoundException ধরতে হবে , কিন্তু ArithmeticException এবং URISyntaxException ধরতে হবে না । এটা কিভাবে করতে হবে? |
2 | 2. ক্যাচিং এক্সেপশন থেকে ক্রমানুসারে পাওয়া তিনটি ব্যতিক্রম রয়েছে : ক্লাস এক্সেপশন1 এক্সেপশন ক্লাস এক্সটেন্ড করে এক্সেপশন 2 এক্সেপশন1 ক্লাস এক্সেপশন3 এক্সটেন্ড করে এক্সেপশন2 একটি পদ্ধতি আছে, যা নিম্নরূপ বর্ণনা করা হয়েছে: পাবলিক স্ট্যাটিক ভ্যাইড মেথড1() এক্সেপশন1, এক্সেপশন2, এক্সেপশন3 থ্রো করে একটি ক্যাচ লিখুন Exception1 , Exception2 এবং Exception3 তিনটিই ধরার জন্য ব্লক করুন |
3 | 3. নির্বাচনী ব্যতিক্রমগুলি ধরা 1. BEAN.methodThrowExceptions পদ্ধতি দ্বারা কোন ব্যতিক্রমগুলি নিক্ষেপ করা হয়েছে তা খুঁজে বের করুন ৷ 2. পদ্ধতি processExceptions() কে BEAN.methodThrowExceptions পদ্ধতি কল করা উচিত এবং ব্যতিক্রমগুলি পরিচালনা করা উচিত: 2.1। যদি একটি ব্যতিক্রম FileSystemException দেখা যায়, তাহলে BEAN.log মেথড কল করে লগ করুন এবং থ্রো ফরওয়ার্ড 2.2। যদি একটি ব্যতিক্রম CharConversionException বা অন্য কোনো IOException ঘটে থাকে, তবে BEAN.log 3 পদ্ধতিতে কল করে এটি লগ করুন। আপনি 2.1-এ যে ব্যতিক্রমটি ফরোয়ার্ড করছেন তার ক্লাস/টাইপ যোগ করুন। প্রক্রিয়া ব্যতিক্রমসমূহ () পদ্ধতি স্বাক্ষর। 4. মেথড main()-এ অবশিষ্ট ব্যতিক্রমটি পরিচালনা করুন এবং লগ করুন। চেষ্টা করুন..ক্যাচ টিপ ব্যবহার করুন : আপনি যদি MyException ব্যতিক্রমটি ধরে থাকেন , যা আপনি ধরতে চান না, আপনি নিম্নলিখিত কোডটি ব্যবহার করে এটিকে এগিয়ে দিতে পারেন: catch (MyException e) { throw e; } |
4 | 4. চেক করা ব্যতিক্রমগুলি ধরা হচ্ছে পদ্ধতি প্রক্রিয়ায় সমস্ত চেক করা ব্যতিক্রমগুলি পরিচালনা করুনExceptions () । প্রতিটি চেক করা ব্যতিক্রম ঘটেছে যা আপনাকে স্ক্রিনে প্রদর্শন করতে হবে। আপনি শুধুমাত্র একটি ব্লক চেষ্টা ব্যবহার করতে পারেন . |
5 | 5. অচেক করা ব্যতিক্রমগুলি ধরা হচ্ছে পদ্ধতি প্রক্রিয়ার সমস্ত অচেক করা ব্যতিক্রমগুলি পরিচালনা করুনExceptions () ৷ আপনাকে প্রিন্টস্ট্যাক() পদ্ধতি ব্যবহার করে প্রতিটি ঘটে যাওয়া ব্যতিক্রমের একটি স্ট্যাক ট্রেস স্ক্রিনে প্রদর্শন করতে হবে । আপনি শুধুমাত্র একটি ব্লক চেষ্টা ব্যবহার করতে পারেন . |
9 অধ্যাপক, ব্যতিক্রমের উপর বক্তৃতা
- আজ আমরা একটি সুপার-আকর্ষণীয় বিষয় আছে - ব্যতিক্রম. সেই সময়ে, যখন তরুণ বিজ্ঞানী এবং প্রোগ্রামাররা এই বিষয়টি নিয়ে গভীরভাবে উত্তেজিত ছিলেন... - দুঃখিত, আমাকে অবশ্যই ল্যাবে যেতে হবে। এখানে বক্তৃতা নোট আছে. আমি মনে করি আপনি নিজেই এটি বের করবেন। এখানে: জাভা ব্যতিক্রম (ওরাকল ডকুমেন্টেশন) জাভাতে ব্যতিক্রম হ্যান্ডলিং (জাভা টি পয়েন্ট) জাভা - ব্যতিক্রম হ্যান্ডলিং (টিউটোরিয়াল পয়েন্ট) বেসিক জাভা ব্যতিক্রম হ্যান্ডলিং10 জুলিও
- আমিগো, আজকের পাঠ সম্পর্কে আপনার কি মনে হয়? আপনার পজিট্রন মস্তিষ্ক এখনও কাজ করেনি? ডিয়েগোর কাজগুলোই যে কাউকে পরাজিত করার জন্য যথেষ্ট। আসুন একটি বিয়ার মুহূর্ত আছে এবং বিশ্রাম. আপনি এখনও দাঁড়িয়ে আছেন?11 ক্যাপ্টেন কাঠবিড়ালি
- হ্যালো, সৈনিক! - সুপ্রভাত স্যার! - তোমার জন্য আমার কাছে কিছু ভালো খবর আছে। আপনার দক্ষতা জোরদার করার জন্য এখানে একটি দ্রুত পরীক্ষা। প্রতিদিন এটি করুন, এবং আপনি আপনার দক্ষতা দ্রুত বৃদ্ধি করবেন। কাজগুলি বিশেষভাবে ইন্টেলিজ আইডিইএ-তে করার জন্য ডিজাইন করা হয়েছে।Intellij Idea-এ অতিরিক্ত কাজ করতে হবে | |
---|---|
1 | 1. শূন্য দ্বারা বিভাজন একটি পদ্ধতি তৈরি করুন সর্বজনীন স্ট্যাটিক অকার্যকর divisionByZero() , যেখানে আপনাকে যেকোনো সংখ্যাকে শূন্য দিয়ে ভাগ করতে হবে এবং বিভাজনের ফলাফল স্ক্রিনে প্রদর্শন করতে হবে। divisionByZero() মেথড কলটি ট্রাই করে র্যাপ করুন..ক্যাচ করুন । exception.printStackTrace() পদ্ধতি ব্যবহার করে ব্যতিক্রম স্ট্যাক ট্রেস পর্দায় প্রদর্শন করুন । |
2 | 2. 10 থেকে 0 পর্যন্ত কাউন্টডাউন 10 থেকে 0 পর্যন্ত কাউন্টডাউন করতে একটি লুপ লিখুন। বিলম্ব করতে Thread.sleep(100) ব্যবহার করুন; ঘুমের কলটি একটি চেষ্টা করে মোড়ানো..ধরুন । |
3 | 3. একটি পদ্ধতিতে মোড়ানো চেষ্টা করুন..কীবোর্ড থেকে সংখ্যা পড়ুন। একটি পৃথক পদ্ধতি readData() কীবোর্ড থেকে সংখ্যা পড়ার জন্য একটি কোড লিখুন । এই পদ্ধতির পুরো অংশটি ( readData() পদ্ধতির ভিতরের পুরো কোডটি , যেখানে সংখ্যাগুলি সংরক্ষণ করা হবে সেই তালিকার ঘোষণা ব্যতীত) একটি চেষ্টা করুন..catch . যদি ব্যবহারকারী একটি সংখ্যা প্রবেশের পরিবর্তে কিছু পাঠ্য প্রবেশ করে, তবে পদ্ধতিটি ব্যতিক্রমটি ধরতে হবে এবং আগে প্রবেশ করা সমস্ত নম্বর স্ক্রীনে প্রদর্শন করতে হবে। স্ক্রিনে সংখ্যা প্রদর্শন করুন। প্রতিটি সংখ্যা একটি নতুন লাইনে থাকা উচিত। সংখ্যার ক্রম ঠিক যেমন ইনপুটে ছিল তেমন হওয়া উচিত। |
4 | 4. তারিখ রূপান্তরকারী কীবোর্ড থেকে "08/18/2013" বিন্যাসে একটি তারিখ পড়ুন "AUG 18, 2013" আকারে সেই তারিখটি স্ক্রিনে প্রদর্শন করুন৷ অবজেক্ট তারিখ এবং SimpleDateFormat ব্যবহার করুন । |
5 | 5. স্বর এবং ব্যঞ্জনবর্ণ একটি প্রোগ্রাম লিখুন যা কীবোর্ড থেকে লাইন পড়ে। প্রোগ্রামটি স্ক্রিনে দুটি স্ট্রিং প্রদর্শন করবে: 1) প্রথম স্ট্রিংটিতে স্বরবর্ণ থাকা উচিত 2) দ্বিতীয় স্ট্রিংটিতে প্রবেশ করা পাঠ্য থেকে ব্যঞ্জনবর্ণ এবং বিরাম চিহ্ন থাকা উচিত। স্পেস দ্বারা পৃথক অক্ষর. উদাহরণ ইনপুট: স্টপ লুক লিসেন উদাহরণ আউটপুট: oooie stplklstn |
6 | 6. লিটল রেড রাইডিং হুডের গল্প 1. পাঁচটি শ্রেণী রয়েছে: রেড রাইডিং হুড, দাদী, প্যাটি, কাঠ কাটার, নেকড়ে। 2. প্রতিটি ক্লাসে ArrayList টাইপের দুটি ক্ষেত্র রয়েছে : মেল এবং ate। 3. প্রয়োজনীয় বস্তু ইতিমধ্যে তৈরি করা হয়েছে (হুড, ঠাকুরমা, ...)। 4. "লিটল রেড রাইডিং হুড" এর যুক্তি পেতে সঠিক সম্পর্ক তৈরি করুন (কে খেয়েছে এবং কাকে মেরেছে)। |
7 | 7. মুভ স্ট্যাটিক পরিবর্তন করুন স্ট্যাটিক মডিফায়ারগুলি সরান যাতে কোড কম্পাইল হয়। |
8 | 8. সংখ্যার অ্যারেগুলির তালিকা একটি তালিকা তৈরি করুন যার উপাদানগুলি সংখ্যার অ্যারে। তালিকায় যথাক্রমে 5, 2, 4, 7, 0 দৈর্ঘ্য সহ পাঁচটি অবজেক্ট অ্যারে যোগ করুন। যেকোনো ডেটা দিয়ে অ্যারে পূরণ করুন এবং স্ক্রিনে প্রদর্শন করুন। |
9 | 9. দশটি বিড়াল একটি ক্ষেত্র স্ট্রিং নাম দিয়ে একটি ক্লাস বিড়াল তৈরি করুন । একটি অভিধান মানচিত্র তৈরি করুন<String, Cat> , মডেল «Name» - «Cat» এ 10টি বিড়াল যোগ করুন। ম্যাপ থেকে নামের একটি সেট পান এবং সেটটি স্ক্রিনে প্রদর্শন করুন। |
বোনাস কাজ | |
---|---|
1 | 1. প্রোগ্রাম কম্পাইল এবং রান না. ঠিক কর. টাস্ক: প্রোগ্রামটিকে কীবোর্ড থেকে দুটি ফাইলের নাম পড়তে হবে এবং প্রথম ফাইলটিকে দ্বিতীয় নাম দ্বারা নির্দিষ্ট স্থানে অনুলিপি করতে হবে। |
2 | 2. প্রোগ্রামে নতুন কার্যকারিতা যোগ করুন। পুরানো কাজ: প্রোগ্রামটি কীবোর্ড থেকে দুটি ফাইলের নাম পড়তে হবে এবং প্রথম ফাইলটিকে দ্বিতীয় নাম দ্বারা নির্দিষ্ট স্থানে অনুলিপি করতে হবে। নতুন কাজ: প্রোগ্রামটি কীবোর্ড থেকে দুটি ফাইলের নাম পড়তে হবে এবং দ্বিতীয় নাম দ্বারা নির্দিষ্ট অবস্থানে প্রথম ফাইলটি অনুলিপি করতে হবে। যদি নির্দিষ্ট নামের সাথে ফাইলটি (যেটি অনুলিপি করা হচ্ছে) বিদ্যমান না থাকে, তাহলে প্রোগ্রামটি পর্দায় "ফাইল বিদ্যমান নেই" বার্তাটি প্রদর্শন করবে এবং পড়ার আগে কনসোল থেকে ফাইলের নামটি আবার পড়ার চেষ্টা করবে। দ্বিতীয় (গন্তব্য) ফাইলের নাম। |
3 | 3. অ্যালগরিদম শেখা এবং অনুশীলন করা। কীবোর্ড থেকে শব্দ এবং সংখ্যার তালিকা পড়ুন। স্ক্রীনে শব্দগুলিকে ঊর্ধ্বক্রমে এবং সংখ্যাগুলিকে অবরোহ ক্রমে প্রদর্শন করুন৷ উদাহরণ ইনপুট: চেরি 1 বিন 3 আপেল 2 0 তরমুজ উদাহরণ আউটপুট: আপেল 3 বিন 2 চেরি 1 0 তরমুজ |
GO TO FULL VERSION