kotlin基础
// Kotlin 1.3.11 编译器版本
// 无包声明
import java.io.IOException
// 定义类 A1,添加构造函数初始化 AAA1
class A1(val AAA1: String) {
// var AAA1: String? = null; // 不再需要这个可空的属性声明,因为已经通过构造函数初始化
}
fun main() {
// 集中声明变量,更像 C 语言风格
var SSS1: String = "abc";
var EEE1: Int? = null;
// 创建 A1 实例时传入非空字符串
var GGG1: A1 = A1("some value");
var SSS2: String? = null;
var EEE2: String = "";
var GGG2: A1 = A1("another value");
var SSS3: String? = null;
var EEE3: String = "";
// 异常抛出示例
try {
throw Exception("Hi There!");
} catch (e: Exception) {
println("cat1 捕获到异常: ${e.message}");
}
// try...catch...finally 示例
try {
println("cat2 尝试执行一些代码");
} catch (e: RuntimeException) {
println("cat3 捕获到运行时异常: ${e.message}");
} finally {
println("cat4 这是 finally 块,无论是否有异常都会执行");
}
// try 作为表达式示例
EEE1 = try {
SSS1.toInt();
} catch (e: NumberFormatException) {
null;
};
println("cat5 try 表达式的结果: $EEE1");
// Nothing 类型示例:在 Elvis 表达式中使用 throw
SSS2 = GGG1.AAA1;
EEE2 = if (SSS2 != null) {
SSS2;
} else {
throw IllegalArgumentException("Name required");
};
println("cat6 处理后的结果: $EEE2");
// Nothing 类型示例:定义永远不会返回的函数
fun A2_DDD1(message: String): Nothing {
throw IllegalArgumentException(message);
}
SSS3 = GGG2.AAA1;
EEE3 = if (SSS3 != null) {
SSS3;
} else {
A2_DDD1("Name is missing for another person");
};
println("cat7 最终结果: $EEE3");
// 受检异常相关说明示例
@Throws(IOException::class)
fun A3_DDD2(): Unit {
throw IOException("模拟 IO 异常");
}
try {
A3_DDD2();
} catch (e: IOException) {
println("cat8 捕获到模拟的 IO 异常: ${e.message}");
}
}
更多推荐



所有评论(0)