try-catch-finally的用法

  • try:代码块里放的是需要被捕获异常的代码。
  • catch:捕获异常,跟在try后面,可以有一个或多个catch。
  • finally:无论异常有没有抛出,都会执行代码块,即使try里有return也会在返回之前执行finally里的内容。

    在代码中,不可以仅有try代码块,在try后需要有catch或者finally代码块。也就是说try和finally代码块之间可以没有catch代码块,有异常的时候会直接抛出到系统层面。

catch块中的排序

    由派生程度高到低的顺序排序,例如:
AbandonedMutexException从SystemException中派生,则在同时使用两者的情况下,SystemException不能在AbandonedMutexException前面catch。

equals和==的区别

  • 对于值类型来说,两者比较的都是值是否相同。
  • 对于引用类型来说,==比较的是两个变量的引用的地址是否一样。equals依然比较的是值是否相同。
  • string是一个特例,string类内部对==操作符进行了重写,将其重写成了比较两个变量的值是否相同。

Sql注入

    Sql注入简单的说就是,利用拼接字符串的形式来组装sql语句,用户可以通过传入的参数来改变sql语句的组装。

避免Sql注入的方法

  1. 避免字符串拼接Sql语句。
  2. 进行参数化查询,比如使用Dapper。
  3. 检测输入的参数有可能被注入的关键字符串,或给传入的参数设置格式,比如{id:int}。