亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否總是需要在方法中編寫 try-catch(),static void main() 是一種方法

是否總是需要在方法中編寫 try-catch(),static void main() 是一種方法

富國滬深 2022-12-15 17:10:26
為什么不在方法內部的 try-catch 有效?package ro.ase.acs.main;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import ro.ase.acs.classes.Addition;import ro.ase.acs.classes.Robot;import ro.ase.acs.interfaces.BinaryOperation;import ro.ase.acs.interfaces.DisplayService;public class Main {    public static void main(String[] args) {        Robot robot = new Robot();        robot.setName("Lego Mindstorms");        robot.setAutonomy(2);        robot.setProductionYear(2015);        try(FileOutputStream fos = new FileOutputStream("robot.bin");            DataOutputStream data = new DataOutputStream(fos)) {//baga in fisier datele setate mai sus;            data.writeUTF(robot.getName());            data.writeFloat(robot.getAutonomy());            data.writeInt(robot.getProductionYear());        } catch(IOException e) {            e.printStackTrace();        }        Robot robot2 = new Robot();        try(FileInputStream fis = new FileInputStream("robot.bin");//se citesc datele din fisier;se creeaza un al 2-lea obiect cu datele pe care le-am bagat anterior in fisier;            DataInputStream data = new DataInputStream(fis)) {            robot2.setName(data.readUTF());            robot2.setAutonomy(data.readFloat());            robot2.setProductionYear(data.readInt());        } catch(IOException e) {            e.printStackTrace();        }}這是我老師寫的代碼,我讀到 try-catch() 只有在方法內部時才有效,但在上面的代碼中,它在不在方法內部的情況下也有效。是否足以聲明一個新對象在 try-catch 之前編寫 try 而不將其包含在方法中?是的,static void main() 是一種方法,這就是為什么我們可以在 static void main() 中編寫 try-catch 語句而不會出現錯誤的原因。
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

public static void main(String[] args) { ... }是一個方法,try-catch塊是在這個main方法內部執行的。


一般性地回答您的問題:您可以在方法中編寫 try-catch 塊,也可以使用靜態塊(將在 main 方法之前執行):


class ClassName {

    static {

        //try-catch here

    }

}

但是,你不能寫這樣的東西:


class ClassName { 

    //try-catch here

}


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號