成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

干貨!Pipeline腳本穩(wěn)定運行的核心設(shè)計思路

開發(fā) 前端
如果想要CI/CD持續(xù)穩(wěn)定的運行,那么pipeline腳本的穩(wěn)定性就是最核心的問題,那么如何才能讓pipeline腳本穩(wěn)定的運行呢?就是應(yīng)用異常!這里以腳本化Pipeline script為例進行講解。

[[428277]]

如果想要CI/CD持續(xù)穩(wěn)定的運行,那么pipeline腳本的穩(wěn)定性就是最核心的問題,那么如何才能讓pipeline腳本穩(wěn)定的運行呢?就是應(yīng)用異常!這里以腳本化Pipeline script為例進行講解,如果您使用聲明式pipeline script,請把異常處理機制放在script {}中(這里不對聲明式pipeline script做詳細介紹)。

編碼式Pipline的異常使用

Pipeline 處理異常的形式如下:

  1. node { 
  2. sh './set-up.sh' 
  3. try { 
  4. sh 'might fail' 
  5. echo 'Succeeded!' 
  6. } catch (err) { 
  7. echo "Failed: ${err}" 
  8. } finally { 
  9. sh './tear-down.sh' 
  10. echo 'Printed whether above succeeded or failed.' 

異常通用概念

在這里需要介紹一下異常相關(guān)的基礎(chǔ)概念:

Exception

檢查性異常:最具代表的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預(yù)見的。例如要打開一個不存在文件時,一個異常就發(fā)生了,這些異常在編譯時不能被簡單地忽略。

運行時異常:運行時異常是可能被程序員避免的異常。與檢查性異常相反,運行時異常可以在編譯時被忽略。

Error

錯誤:錯誤不是異常,而是脫離程序員控制的問題。錯誤在代碼中通常被忽略。例如,當(dāng)棧溢出時,一個錯誤就發(fā)生了,它們在編譯也檢查不到的。下圖顯示了如何組織Groovy中的異常層次結(jié)構(gòu)。它都基于Java中定義的層次結(jié)構(gòu)。

干貨!Pipeline腳本穩(wěn)定運行的核心設(shè)計思路

try和catch的使用

方法使用try和catch關(guān)鍵字的組合捕獲異常。 try/catch塊放在可能生成異常的代碼周圍。

  1. try{ 
  2. //保護的代碼 
  3. } catch(ExceptionName e1) { 
  4. //處理異常的代碼 

 可以有多個catch塊來處理多種類型的異常。對于每個catch塊,根據(jù)引發(fā)的異常類型,您將編寫代碼來相應(yīng)地處理它。

  1. try { 
  2. def arr = new int[3]; 
  3. arr[5] = 5; 
  4. catch(ArrayIndexOutOfBoundsExceptionex) { 
  5. println("捕獲Array out of Bounds exception"); 
  6. catch(IOException ex) { 
  7. println("捕獲 io exception"); 

 結(jié)果輸出

捕獲Array out of Bounds exception

finally塊

finally塊遵循try塊或catch塊。無論發(fā)生異常,最終都會執(zhí)行最后一段代碼。

  1. try { 
  2. def arr = new int[3]; 
  3. arr[5] = 5; 
  4. catch(ArrayIndexOutOfBoundsExceptionex) { 
  5. println("捕獲Array out of Bounds exception"); 
  6. catch(IOException ex) { 
  7. println("捕獲 io exception"); 
  8. finally{ 
  9. println("執(zhí)行final 塊"); 

 結(jié)果輸出

捕獲Array out of Boundsexception

執(zhí)行final塊

備注:如果大家不確認具體的異常類型直接使用exception(或者exp)就可以,因為它是各種exception的父類!

error的處理

當(dāng)我們需要處理錯誤(錯誤不是異常,而是脫離程序員控制的問題。)的時候,就需要使用error(或者err)了。

  1. try { 
  2. //保護的代碼 
  3. catch(error) { 
  4. //處理錯誤的代碼 

穩(wěn)定代碼的設(shè)計核心點

如果想使我們的代碼穩(wěn)定運行,既處理異常又捕獲error,可以這樣處理

  1. try { 
  2. //保護的代碼 
  3. catch(err) { 
  4. //處理錯誤的代碼 
  5. catch(exp){ 
  6. //處理異常的代碼 

 在pipeline中的應(yīng)用如下所示,這樣設(shè)計可以確保我們的pipeline穩(wěn)定運行。

  1. node { 
  2. try { 
  3. //pipeline運行的腳本 
  4. catch(err) { 
  5. //處理pipeline中代碼的異常 
  6. catch(exp){ 
  7. //處理pipeline中遇到的錯誤信息 

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2016-02-18 10:09:23

12306核心思路架構(gòu)

2021-10-15 09:16:05

PipelineDevopsJenkins

2025-03-13 08:30:00

MySQL架構(gòu)主從同步

2020-10-13 21:25:15

DevOps核心

2020-11-09 07:29:12

ReentrantLo源碼公平鎖

2017-04-24 13:51:16

設(shè)計師分析

2024-08-23 08:56:59

2020-11-05 09:04:52

MySQL隨機恢復(fù)

2013-05-14 10:05:10

Android開發(fā)游戲設(shè)計

2022-02-24 08:18:12

穩(wěn)定性高可用可用性

2022-10-20 12:04:08

2011-08-18 13:57:47

Star Schema

2022-07-29 09:35:25

WAF溯源識別

2013-12-13 16:00:39

社交類APP設(shè)計思路產(chǎn)品經(jīng)理

2021-10-08 08:38:00

Pipelineshell命令Jenkins

2023-05-10 15:08:00

Pipeline設(shè)計模式

2010-07-14 09:01:07

架構(gòu)設(shè)計

2020-07-13 08:10:13

軟件設(shè)計系統(tǒng)

2010-08-30 10:16:32

2010-07-05 16:15:41

流量控制
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久国产视频 | 亚洲免费在线观看视频 | 四虎影视一区二区 | 精品乱子伦一区二区三区 | 久久伊人亚洲 | 97狠狠干 | 久久久久亚洲精品 | 亚洲精品aⅴ | 中文二区 | 日韩久久久久 | 亚洲国产专区 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 精品国产91 | 成人免费在线观看 | 国产视频二区在线观看 | 日韩免费一区二区 | 国内自拍偷拍 | 九九亚洲精品 | 日韩一区二区三区在线 | 日韩在线日韩 | h视频网站在线观看 | 久色网 | av中文字幕在线观看 | av一二三区 | 91精品在线播放 | 天天干精品 | 亚洲精品黄 | 国产精品jizz在线观看老狼 | 国产亚洲精品精品国产亚洲综合 | 亚洲精品中文字幕 | 日韩综合网 | 一区二区三区欧美大片 | www.日本国产 | 亚洲aⅴ | av免费网站在线观看 | 97国产精品视频人人做人人爱 | 中文字幕亚洲一区 | 日日夜夜影院 | 国产精品久久久久久 | 久久91| 日韩视频在线免费观看 |