下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

NET程序员如何转行为J2EE之java基础上(8)

作者:课课家教育     来源: http://www.kokojia.com点击数:617发布时间: 2016-01-29 18:37:23

标签: java语言java编程java应用程序

大神带你学编程,欢迎选课

  然而,两种语言的编译器对您的代码如何处理异常具有不同的预期。在 Visual Basic .NET 中,您可以选择捕获异常,或让它们沿调用堆栈向上传播到类的方法的调用者(和/或构造函数)。java 语言允许同样的处理,但是对于未捕获的应用程序异常(也就是 java.lang.Exception 的子类),您必须显式地将它们作为方法声明的一部分来列出。因此 Java 编译器预期您或者自己捕获所有应用程序异常,或者告诉编译器关于未捕获的异常的信息。例如,假设 Foo 类的构造函数可能抛出一个应用程序异常,那么清单 6 中的 Visual Basic .NET 或 Java 代码对各自的编译器来说都不会有问题。

NET程序员如何转行为J2EE之java基础上(8)_java语言_java编程_课课家

  清单 6. 处理应用程序异常

  Visual Basic .NET           Java

  ...                     ...

  Sub SomeMethod()              public void someMethod() {

  Try                    try {

  Dim Foo X As New Foo()              Foo x = new Foo();

  }

  Catch e As applicationException      catch (Exception e)

  {

  ...                     ...

  End Try                  }

  End Sub                   }

  然而,如果改变代码以使其不捕获异常,那么您就必须改变 Java 方法声明(如清单 7 所示)以避免编译器错误。

  清单 7. 未捕获的应用程序异常

  Visual Basic .NET           Java

  ...                    ...

  Sub SomeMethod()              public void someMethod() throws Exception {

  Dim Foo X As New Foo();           Foo x = new Foo();

  End Sub                  }

  两种语言在这方面存在的另一个区别在于,在 Visual Basic .NET 中,每个捕获块的参数是可选的。如果省略它,那么所有异常都会被捕获。Java 语言不允许这样,而是允许一个等价功能( java.lang.Throwable ),它捕获所有异常类的父类,如清单 8 所示。

  清单 8. 捕获所有异常

  Visual Basic .NET           Java

  ...                     ...

  Sub SomeMethod()              public void someMethod() {

  Try                    try {

  Dim Foo X As New Foo()              Foo x = new Foo();

  }

  Catch                   catch (Throwable e)

  {

  ...                     ...

  End Try                  }

  数组声明

  Java 语言提供两种声明数组的方法;Visual Basic .NET 仅提供了一种方法。Java 数组工作起来很像 Visual Basic .NET 中的动态数组:必须通过一个显式的步骤来给它分配内存。清单 9 中的代码说明了这个区别。与在 Visual Basic .NET 中一样,Java 数组的下标从 0 开始。

  清单 9. 声明数组

  Visual Basic .NET         Java

  ...                  ...

  ' This is how an array is       // In Java the following

  'declared in Visual Basic .NET     // are both allowed

  Dim MyArray() As Integer        private int[] myArray;

  // or

  private int myArray[];

  'Allocate some storage for the array  // Allocate some storage

  // for the array

  ReDim MyArray(30)           myArray = new int[30];

  委托

  Java 语言没有直接等价于 Visual Basic .NET 委托的结构。可以通过声明并实现一个具有单个方法定义的接口来模拟委托功能。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程