当前位置: 首页 > news >正文

东莞网站建设对比wordpress 国内不使用

东莞网站建设对比,wordpress 国内不使用,南昌定制网站建设,怎么让百度快速收录网站错误处理是程序开发中必不可少的一个环节#xff0c;在Rust中#xff0c;错误分成两个类别#xff1a;可恢复错误和不可恢复错误。 可恢复错误#xff1a;比如说未找到文件#xff0c;Rust中用ResultT,E来实现 不可恢复错误#xff1a;比如数组访问越界#xff…错误处理是程序开发中必不可少的一个环节在Rust中错误分成两个类别可恢复错误和不可恢复错误。 可恢复错误比如说未找到文件Rust中用ResultT,E来实现 不可恢复错误比如数组访问越界Rust中用panic实现1.panic这个有感叹号很显然是一个宏我们来使用一下子。fn main() {panic!(panic here!); } 报错信息thread main panicked at panic here!, srcmain.rs:2:5 stack backtrace:0: backtrace::backtrace::trace_unsynchronized ... 这底下还有很多调用堆栈的信息哈我们现在不去关心它使用RUST_BACKTRACE1命令来运行程序也可以调出调用堆栈信息。2.ResultResult其实是一个枚举类型它的原型如下enum ResultT, E {Ok(T),Err(E), } 我们通过打开文件来举例说明use std::fs::File;fn main() {let f File::open(Rust.txt);//枚举当然需要来match一下let f match f {Ok(file) file,Err(error) panic!(error: {}, error),}; } 我们的当前目录里并没有这个文件预期是会出错的。报错信息thread main panicked at error: 系统找不到指定的文件。 (os error 2), srcmain.rs:8:23 stack backtrace:0: backtrace::backtrace::trace_unsynchronizedemmm,我这里居然还是中文。。。我以为是No such a file or directory.3.简写形式我们可以通过unwrap或者expect函数来简写程序。use std::fs::File;fn main() { // let f File::open(Rust.txt); // //枚举当然需要来match一下 // let f match f { // Ok(file) file, // Err(error) panic!(error: {}, error), // };let f File::open(Rust.txt).unwrap(); } 报错信息thread main panicked at called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: 系统找不到指定的文件。 }, srclibcoreresult.rs:1165:5 stack backtrace:0: backtrace::backtrace::trace_unsynchronized use std::fs::File;fn main() {let f File::open(Rust.txt).expect(failed to open Rust.txt); }报错信息thread main panicked at failed to open Rust.txt: Os { code: 2, kind: NotFound, message: 系统找不到指定的文件。 }, srclibcoreresult.rs:1165:5 stack backtrace:0: backtrace::backtrace::trace_unsynchronized4.传播错误当我们调用一个函数的时候函数内部可能出错而调用方需要捕捉错误信息因此可以将错误传出来这个过程就是传播错误。还是以读取文件内容来举例use std::fs::File; use std::io::Read; use std::io;fn main() {let res read_file();match res {Ok(str) println!(str: {}, str),Err(error) println!(error: {}, error)}; }fn read_file() - ResultString, io::Error {let f File::open(Rust.txt);let mut f match f {Ok(file) file,Err(error) return Err(error)};let mut str String::new();match f.read_to_string(mut str) {Ok(_) Ok(str),Err(error) Err(error)} } 我们创建了一个Rust.txt文件运行结果如下str: Rust编程之路我们把文件删除运行结果error: 系统找不到指定的文件。 (os error 2)也是把错误信息打印出来了。5.小问号你是否有很多朋友我们可以通过“”来做到传播错误的简写use std::fs::File; use std::io::Read; use std::io;fn main() {let res read_file();match res {Ok(str) println!(str: {}, str),Err(error) println!(error: {}, error)}; }fn read_file() - ResultString, io::Error {let mut f File::open(Rust.txt)?;let mut str String::new();f.read_to_string(mut str)?;Ok(str) } 还可以再简单一点fn read_file() - ResultString, io::Error {let mut str String::new();File::open(Rust.txt)?.read_to_string(mut str)?;Ok(str) } 就很棒6.panic和Result如何选择在测试过程中我们可以使用panic这样调试起来比较方便。但是在正式发布的代码中为了程序的健壮性和容错率最好不要使用panic 个人观点哈~7.panic的实现机制在Rust中panic的实现方式有两种unwind和abortunwind 方式在发生panic 的时候会一层一层地退出函数调用枝在此过程中当前栈内的局部变量还可以正常析构。 abort 方式在发生panic 的时候会直接退出整个程序。一般来说默认情况下编译器都是使用的unwind模式。如何用户自己制定rustc -C panicunwind test.rs rustc -C panicabort test.rs欢迎关注公众号Rust编程之路
http://www.sadfv.cn/news/322248/

相关文章:

  • 怎么建立自己公司的网站建设安全备案登入那个网站
  • 辛集建设局官方网站工程资质加盟分公司
  • 会宁县建设局网站网站改版后的推广办法
  • 深圳盐田网站建设高端网站建设赣州
  • 电子商务与网站建设策划书网页设计教程文字与图片
  • 建设网站为什么要虚拟主机成都企业网站建设及公司ppt
  • 延安市城乡建设局网站大连网站制作的
  • 课程建设网站设计源码wordpress轻语博客
  • 在线简易网页制作网站北京建设主管部门官方网站
  • 行业网站推广外包禅城网站建设联系电话
  • 企业网站模板html网站快速查找
  • 江苏网站开发电话建设工程施工合同网站
  • 网站初期做几个比较好8211 wordpress
  • 成都规划网站淘宝网为什么是c2c模式
  • 电商网站开发难点搜索引擎优化通常要注意的问题有( )
  • 怎么做个手机版的网站河南宝盈建设集团有限公司网站
  • 长治网站制作怎么做做相册集什么网站
  • 发帖那个网站好 做装修的腾讯理财是什么样的做网站
  • 网站建设 事项安徽建设工程信息网实名制怎么解聘
  • 在深圳市做一个网站多少钱建站公司
  • 设计网站需要什么条件深圳公司招聘
  • saas做视频网站实时热搜榜榜单
  • 网站漂浮广告效果网站被挂黑链对网站有啥影响
  • 深圳集团网站建设哪家好任何查询网站有没有做404
  • 做一个色流网站怎么做中职计算机专业主要学什么
  • wordpress 模板命名seo顾问赚钱吗
  • 理解电子商务网站建设与管理开发区
  • 代做施组 方案的网站进入官方网站
  • 东莞网站优化流程印团网网站是哪家做的
  • 做民宿上几家网站好代理公司注册哪家好