Skip to main content

JVM ও Methods এর কথোপকথন (post -7)



<-Previous Topic      
     
মনে হইলো কয়েকটা কোডের Procedure  দেখাইলে আপনাদের কনসেপ্ট ক্লিয়ার হবে , তাই এইখানে ২/৩ টা কোড দেখানোর চেস্টা করবো ইনশাল্লাহ।

কোড ১ ঃ 

 public class Main{
        public static void main(String [] args){
১.     int a=50,b=0,c;
২.     c=a/b;                 // ArithmeticException
৩.     System.out.println( c );
        }
}

JVM : ভাই, ২ নাম্বার লাইনে এক্সেপশন হইসে, আপনি কি এটা হ্যান্ডেল করার জন্য কিছু করসেন?

Main Method:  নাহ।

JVM : Actionnn…

কি Action নিবে? ArithmeticException (or যে এক্সেপশন হবে) এর অবজেক্ট পাস করে দিবে  Default Exception Handler  এর কাছে, Default Exception Handler  ঐ অবেজেক্ট প্রিন্ট করে প্রোগ্রাম বন্ধ করে দিবে।

Output:

Exception in thread "main" java.lang.ArithmeticException: / by zero
        at package.class.method(M.java:2)


কোড ২ ঃ 

 public class Main{
         public static void main(String [] args){

        int a=50,b=0,c;
        try{

     c=a/b;                 // ArithmeticException

      }catch(ArithmeticException e){

        System.out.println(“From Catch Block”);
        }
        System.out.println(“Outside Exceptions”);
                }
}

JVM : ভাই, এক্সেপশন হ্যান্ডেল করেছেন?
Main method: হ্যাঁ, try, catch  ব্যবহার করেছি।
JVM: ওকে, এক্সেপশন অবেজেক্ট কে  আপনার ক্যাচ ব্লকে পাঠিয়ে দিলাম তাহলে।

৪ নাম্বার লাইনের ক্যাচ ব্লকের এক্সেপশন রিসিভারের সাথে যদি throw করা অবজেক্ট মিলে তাহলে ক্যাচ ব্লক এক্সিকিউট হবে।
যদি না মিলে তাহলে Default Exception Handler এর কাছে পাঠিয়ে দিবে।

Output:
From Catch Block
Outside Exceptions



কোড ৩ঃ

public class Main{
    public static void main(String[] args) {
        int []a=new int [4];
        try{
                   System.out.println(a[6]); //ArrayIndexOutOfBoundsException

        }catch(ArithmeticException e){
        System.out.println("From Catch Block");
        } finally{
            System.out.println("Qyamat se Qyamat");
        }
        System.out.println("Outside Exceptions");
    }
}

JVM: ভাই, এক্সেপশন হ্যান্ডেল?
Main method:  করসি।
JVM: ওকে, আপনার ক্যাচ ব্লকে পাঠায় দিলাম।
Main: Ok.
JVM: ভাই আপনার ক্যাচ ব্লকে ArrayOutOfBoundsException  এর অবজেক্ট খুজে পাইলাম না।
Main: তাহলে আমি জানি না।  :p
JVM: Actionn...

মানে আবারো Default Exception Handler  এর কাছে পাঠিয়ে দিবে।
কিন্তু এইবার কোডে finally  আছে। আর কিয়ামত হয়ে গেলেও এটা এক্সিকিউট হবেই হবে।

Output:
Qyamat se Qyamat
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
        at abstractp.M.main(M.java:7)                



 
<-Previous Topic                                       Next Topic->  throw vs throws

                                   

Move to:
Post 7              Post 8
Post 6              Post 9
Post 5 
Post 4
Post 3 
Post 2 
Post 1


Comments

Popular posts from this blog

IELTS Spoken Class Adminssion Scenario - 01

.......  Student: Hello, May I come in, sir ? Optional (student): May I sit ? Sir:  Please have a seat. Sir: How may I help you, Sir ? Student: I would like to admit in your spoken course. Sir: Oh sure. Student: How many days are there in a week ? Sir: There are three classes in a week. Student: What time do you offer class ? Sir: We have class at 11am / 4pm / 6pm / 8pm

Php Learning Time

 Differences of explode( ) and implode( ) in php: explode: একটা স্ট্রিংকে কোনো একটা সেপারেটরের বেসিসে অ্যারেতে কনভার্ট করে, যেমন  <?php $text="Hello How are you?"; print_r(explode(" ",$text)); ?> This will give output of  Array (     [0] => Hello     [1] => How     [2] => are     [3] => you? ) Differences of array_splice( ) and array_slice( ) ধরেন আসল অ্যারে হচ্ছে    $arr =[ "Hello" , "this" , "is" , "test" , "text" ];    এখন এটাকে স্লাইসিং করার জন্য আমরা উপরের দুইটা মেথড ই ব্যবহার করতে পারি , কিন্তু array_splice এটা ইউজ করলে অরজিনাল array ও চেঞ্জ হয়ে যাবে, মানে যদি আমরা এভাবে লিখি  $var2 = array_splice ( $arr , 0 , 2 );   তাইলে $var2 এর ভিতরে থাকবে ["Hello" , "this"] ,  আর অরজিনাল array তে বাকি থাকবে ["is", "test", "text"] কিন্তু যদি আমরা ইউজ করি তাহলে অরজিনাল array আগের মতোই থাকবে পাশাপাশি $var2 এর মধ্যে ভ্যালু গুলা এসে পড়বে  Array (     [0] => ...