scala学习笔记07-异常处理

异常处理

Scala提供了try…catch来处理异常,try块用于包含可疑代码。catch块用于处理try块中发生的异常。
"_"一定要放在最后一个case,不然下划线后面的的case将无法执行
finally块用于在异常时释放资源。资源可能是文件,网络连接,数据库连接等,finally块执行代码运行保证。

	//异常的处理
	  def main(args: Array[String]): Unit = {
		try {
		  var b:String = null
		  b.head //java.lang.NullPointerException
		  var a = 5/0 //Exception in thread "main" java.lang.ArithmeticException: / by zero 异常
		}catch{
		  // 异常的处理,可以统一使用Exception处理,当代码中有多个异常的时候,就需要按异常类型去处理
		  // 根据顺序匹配异常,从上到下,当有一个可以匹配的异常类型时,就会直接抛出异常,不会继续匹配
		  // 所以最好的方式是将子类异常放在前面
		  case e:ArithmeticException => println("除数不能为0")
		  case e:NullPointerException => println("空指针异常")
		  case e:Exception => println("捕获异常信息" + e.printStackTrace)
		  //上面的统一使用Exceptioin处理还可以使用下面的写法 使用 _
	//      case _ => println("捕获异常信息") //如果需要对参数进行处理的时,不能用_的方式
		}finally {
		  //不管有没有异常,程序都会执行
		  println("程序执行")
		}
		println("今天天气好啊")
	  }
throw关键字

在代码中明确地抛出异常。Scala提供throw关键字来抛出异常。 throw关键字主要用于抛出自定义异常。

	object Test02Throw {
	  def main(args: Array[String]): Unit = {
		var a:Int = 1
		try {
		  less18(a)
		}catch {
		  case e:MyExceptioin => println(e.getMessage)
		}
	}
	  /**
		* 通过throw的方式抛出异常信息
		* @param n 年龄
		*/
	  def less18 (n:Int){
		if (n<18){
			//自定义了异常类
		  throw new MyExceptioin("未满18岁")
		}else {
		  "已满18"
		}
	  }
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值