Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

「Python」异常处理

2024-09-02 2 min read Docs Ronan

在 Python 中,常见的基本错误有两类,即语法错误和异常。对于语法错误,应该在程序编写过程中尽量予以避免,在程序调试中消除。而异常是 Python 程序在运行过程中引发的错误,如果程序中引发了未进行处理的异常,程序就会由于异常而终止运行,只有为程序添加异常处理,才能使程序更具健壮性。

1.语法错误

语法错误是所有编程语言中都存在的一种常见错误,即程序的洗发不符合编程语言的规定。常见的语法错误有:

  1. 拼写错误(SyntaxError、NameError),即 Python 语言中的关键字写错,变量名,函数名拼写错误等。
  2. 脚本程序不符合 Python 的语法规范,例如少了括号,冒号等,以及表达式书写错误等。
  3. 缩进错误,因为 Python 语法规定,以缩进作为程序的语法之一。一般来说,Python 标准的缩进是以 4 个空格或一个 Tab 作为一个缩进,但同一个程序或项目中应该统一使用同一种缩进风格。

2.异常处理

异常是 Python 程序在运行过程中引发的错误。如果程序中引发了未进行处理的异常,脚本就会由于异常而终止运行。只有在程序中捕获这些异常,并进行相关的处理,才能使程序不会中断运行。

Python 中使用 try...except 语句来说处理异常,基本形式如下:

try:
	'语句'	 # 可能产生异常的语句
except	'异常名 1'	# 要处理的第一类异常
	'语句'	 # 异常的处理语句
except	'异常名 1'	# 要处理的第二类异常
	'语句'	 # 异常的处理语句
else:		  
	'语句'     # 未触发异常,则执行该语句
finally:	  
	'语句'     # 始终执行该语句,一般为了达到释放资源等目的

注意:else 语句在未引发异常情况下得到运行。

首先,我们先演示一个最简单的案例:

# 函数名错误, print 误写成 printt
printt(1)
print(2)

运行结果:

NameError: name 'printt' is not defined

使用异常捕获

try:
    # 函数名错误, print 误写成 printt
    printt(1)
except:
    print('捕获到了异常')

print(2)

注意:

Continue reading

sdcc编译与链接

2024-09-02 1 min read Docs Ronan

1.编译源文件

首先,你需要编译你的源文件(例如 main.c)以生成目标文件(.rel)。你可以使用以下命令:

sdcc -c main.c

这条命令会生成 main.rel 文件。

如果你的库文件不在当前目录下并且提示头文件未找到,你可以通过 -I 选项指定包含文件的路径,然后使用绝对路径指定库,例如:

sdcc  -I/path/to/include -c /path/to/src/main.c 

这条命令也会生成 main.rel 文件。

如果不希望生成的目录挤在和main.c相同目录下,可以通过-o参数指定

sdcc -c main.c -o /path/to/build

2.编译其他库文件

假设你有其他的库文件(例如 library.c),你需要同样地将它们编译成目标文件:

sdcc -c library.c

这条命令会生成 library.rel 文件。

你需要编译的库文件是以 .lib 或者 .a 结尾的,你可以在编译命令中指定这些库文件。

如果你的库文件不在当前目录下并且提示头文件未找到,你可以通过 -I 选项指定包含文件的路径,然后使用绝对路径指定库,例如:

sdcc  -I/path/to/include -c /path/to/lib/library.c

这条命令也会生成 library.rel 文件。

如果不希望生成的目录挤在和main.c相同目录下,可以通过-o参数指定

sdcc -c library.c -o /path/to/build

3.链接所有目标文件

一旦你有了所有的目标文件,你就可以将它们链接起来生成最终的二进制文件。你可以使用以下命令:

sdcc main.rel library.rel

这条命令会生成一个可执行文件(例如 a.out 或者具体取决于你编译的目标平台)。

例如,生成.hex文件:

sdcc -o out.hex main.rel library.rel

综合实例

假设你的项目结构如下:

Continue reading

「macOS」neovide初始化错误、常见问题

2024-09-02 1 min read Docs Ronan

在 M1 macOS 中下载 neovide 之后打开遇到:

error

原因分析

由于现在所有的 macOS 版本内置终端都是默认使用 zsh ,但是 Neovide 不会在交互式 shell 中启动嵌入式 neovim 实例,因此 shell 不会读取其启动文件的一部分( ~/.bashrc ~/.zshrc 无论你的 shell 的等效项是什么)。

解决方法

1.首先找到当前安装的 neovim 路径,通过 which nvim 查看,例如

❯ which nvim

/opt/homebrew/bin/nvim

/opt/homebrew/bin/nvim 就是 nvim 的路径,记住它!!!

2.根据自己的 shell,例如:

  • 对于 zsh,将 export PATH="/opt/homebrew/bin:$PATH" 放入 ~/.zprofile~/.zlogin 中。
  • 对于 bash,将 export PATH="/opt/homebrew/bin:$PATH" 放入 ~/.profile
Older posts Newer posts