標籤:
本周預期是分析字串轉換數實值型別時候發生的異常。
在C#中:
int.Parse(String str): 這種方法是將數字內容的字串轉換為int類型。
如果字串的內容為Null ,則拋出ArgumentNullException異常;
如果字串內容不是數字,則拋出FormatException異常。
使用該方法只能處理字串的內容,而且轉換後的字串內容要在int類型的可表示範圍之內。
在Java中:
java.lang.Integer.parseInt(String s, int radix) 方法解析的字串參數s作為一個有符號整數的基數指定的第二個參數基數
以下是java.lang.Integer.parseInt()方法的聲明:
public static int parseInt(String s, int radix) throws NumberFormatException
參數
傳回值
此方法返回指定基數中的字串參數表示的整數.
異常
故,在C#中出現的兩種異常,在Java中都歸為了
NumberFormatException
下面 是Java程式執行個體測試:
程式介面:
當輸入為111q,即含有非法字元q時,拋出異常
當輸入超過了int能表示的範圍時,拋出異常
當輸入為null(空)時,拋出的異常
當輸入全部為字母的時,拋出異常
輸入為正確的int字元時,輸出正確的parse得到的值
下面是該程式所使用的Java 代碼:
1 int count=0; 2 public void start(Stage primaryStage) { 3 primaryStage.setTitle("Form"); 4 AnchorPane root = new AnchorPane(); 5 HBox hbox1 = new HBox(8); 6 final TextField textfield = new TextField(); 7 textfield.setPrefColumnCount(25); 8 textfield.setPrefWidth(180); 9 hbox1.setAlignment(Pos.CENTER_LEFT);10 hbox1.getChildren().addAll(new Label("輸入: "), textfield);11 HBox hbox2 = new HBox(20);12 Button btn = new Button();13 btn.setText("確定");14 final Text text1 = new Text();15 final Text text2 = new Text();16 btn.addEventHandler(MouseEvent.MOUSE_CLICKED,17 new EventHandler<MouseEvent>() {18 public void handle(MouseEvent event) {19 text1.setText(null);20 text2.setText(null);21 String textString = textfield.getText().toString();22 char[] textChar = textString.toCharArray();23 System.out.println(textString);24 25 try26 {27 int result = Integer.parseInt(textfield.getText());28 text2.setText("轉化結果:"+ Integer.toString(result));29 30 }31 catch (Exception exception)32 {33 text1.setText("輸入異常\n"+exception.toString());34 }35 }36 });37 hbox2.getChildren().addAll(btn, text1,text2);38 AnchorPane.setTopAnchor(hbox1, 40.0);39 AnchorPane.setLeftAnchor(hbox1, 10.0);40 AnchorPane.setTopAnchor(hbox2, 90.0);41 AnchorPane.setLeftAnchor(hbox2, 20.0);42 root.getChildren().addAll(hbox1, hbox2);43 primaryStage.setScene(new Scene(root, 250, 120));44 primaryStage.show();45 }View Code
Rickie的軟體測試學習筆記-第四周